/res/raw
フォルダのリソースにプログラムで(特に... mp3ファイル)アクセスしようとしています。エミュレータでは、次のテンプレートが私に役立ちます。電話でres/rawリソースにアクセスする際の問題...エミュレータでうまく動作します
Uri uri = Uri.parse("android.resource://com.foo.bar/raw/name_of_resource");
MediaPlayer mp3 = MediaPlayer.create(this, uri);
実際の電話では、MediaPlayer.create()
メソッドはnullを返します。何がありますか?プログラムでリソースにアクセスするより良い方法はありますか?
P.S.
私は理由のためMediaPlayer.create(this, R.raw.name_of_resource)
を使用していません。私の特別な状況では、リソースの名前を生成することは、リソースのid
を見つけるよりはるかに簡単です。 (つまり、私はかなり簡単にString
name_of_resource
を把握することができますが、実際のinteger id
R.raw.name_of_resource
を推測することはAAより多くの仕事と多くのswitch
文を伴うだろう。
権限の問題ですか?エミュレータでは、実際のデバイスにアクセスするより多くのアクセスを与えると思います。リフレクションの使用はどうですか? – NKijak
私は許可の問題ではないと思います。プログラムに任意のmp3を再生すると、うまく動作します。反射を使用することをどのようにお勧めしますか? – dfetter88