37

MediaPlayer.create メソッドでは、Raw ファイルの ID を使用できますが、setDataSource メソッドでそれを使用するにはどうすればよいですか?

4

3 に答える 3

20

ここで@Kartikの答えを言い換えると、Androidのres / rawフォルダーに保存されている.mp3ファイルのURIを取得します

リソース URI を取得する場合は、次の 2 つの方法があります。

  1. リソース名の使用

構文 : android.resource://[パッケージ]/[res タイプ]/[res 名]

例: Uri.parse("android.resource://com.my.package/drawable/icon");

  1. リソース ID の使用

構文 : android.resource://[パッケージ]/[resource_id]

例: Uri.parse("android.resource://com.my.package/" + R.drawable.icon);

これらは、drawable フォルダーに保存されている任意の画像ファイルの URI を取得する例です。同様に、res/raw フォルダーの URI を取得できます。

リソースの名前変更などは簡単にリファクタリングできるため、IMO 2 番目の方法が推奨されます。

次のようにデータ ソースを設定します。

CONSTANTS.RES_PREFIX = "android.resource://com.my.package/"
mp.setDataSource(getApplicationContext(),
              Uri.parse(CONSTANTS.RES_PREFIX + R.raw.id));
于 2013-01-11T15:29:37.337 に答える
16

生のオーディオを入力ストリームにロードし、通常のストリームと同じように MediaPlayer にロードできます。

InputStream ins = getResources().openRawResource(R.raw.example);

そして、ポケットジャーニーのようなストリーミングチュートリアルに従ってください

しかし、これは非常に複雑です。

mp = MediaPlayer.create(counterstrikesb.this, R.raw.example);
于 2010-04-14T14:06:46.227 に答える