2017-06-12 13 views
-1

私は私が持っている音楽ファイル(mp3)を再生するには、デバイスのデフォルトの音楽プレーヤーを開くために意図を書き込むしようとしているの意図を使用して、デバイスのデフォルトのアプリで再生します私のアンドロイドスタジオプロジェクトの生のフォルダ。これまで私が意図するコードを見つけましたが、私はこれまでのところ、私はまた、ファイルのTEにURIを見つけようと、このような何かを書いているメディアプレーヤーでdplayにそれを特定のmp3ファイルを開くためにそれを注文する方法について積み重ねてしまったが、私カントは、私はそれがすべて場合に役立ちますmp3のファイル名は「greeceMusic」でそれを行うべきかにそれらを一緒に入れました。私が持っているコードは、これまでのところ、私はこれで本当に新たなんだと私はすべての必要とするため、任意のヘルプはgratlyいただければ幸い開いた音楽ファイルは、Android

`@Override ます。public void onClickの(ビュービュー){

  Intent musicIntent = new Intent(); 

      //use Action VIEW to launch app 

      musicIntent.setAction(Intent.ACTION_VIEW); 

      File file = new File("android.resource://" + getPackageName() + "/" + R.raw.greeceMusic); 

      musicIntent.setDataAndType(Uri.fromFile(file), "audio/*"); 

      startActivity(musicIntent); 
     }` 

です私は感謝事前に

+0

あなたは、デバイスのメモリ内の自分の生のリソースを抽出し、単語の後にそれを再生することができます。 –

答えて

0
File file = new File("android.resource://" + getPackageName() + "/" + R.raw.greeceMusic); 

まず、リソースがあなたの上のファイルで一緒に指示を入れることができなかった原因、それは私をたくさん助けていないフォーラムで同様のポストを見つけたときに助け、私は原因を得ることができます開発機械。デバイス上のファイルではありません。

第2に、android.resource://FileなどのスキームでUri構文を使用することはできません。このようなIntentを作成する際に

第三には、ワイルドカードのMIMEタイプを使用しないでください。あなたは、あなたのアプリにメディアをパッケージ一つであるとして、実際のMIMEタイプは、何であるか知っています。したがって、実際のMIMEタイプを使用してください。

第4に、Uri(たとえば、Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.greeceMusic))を正しく作成した場合でも、多くの端末で生のリソースの形式で公開された音楽ファイルを再生できるアプリを持つことはほとんどありません。

あなたの最良のオプションは、その後、ファイル(例えば、ResourcesopenRawResource()が、その後、FileOutputStreamからInputStreamからバイトをコピー)へのリソースの内容をコピーしたファイルを再生しようとすることです(例えば、FileProvider経由で提供)。

関連する問題