0

アプリに埋め込まれた mp3 リソースを Android デバイスに保存しようとしています。後でデフォルトの Android メディア プレーヤーで再生できるようにします。

リソースの入力ストリームを問題なく取得できます。しかし、デフォルトのJavaの方法でデバイスに保存することはできません。

そして、これらのソリューションは両方とも私にはうまくいかなかったようです:

曲をダウンロードしてユーザーの音楽ライブラリに追加するにはどうすればよいですか?

4

1 に答える 1

1

まず、アプリケーションに適切な権限があることを確認してください。android.permission.WRITE_EXTERNAL_STORAGE

次に、ファイルをリソースから Android デバイスにコピーできます。以下は、説明のみを目的としたコード例です。必要に応じて変更してください。

private void copyMp3() throws IOException{

// Open your mp3 file as the input stream
InputStream myInput = getAssets().open("your_file.mp3");

// Path to the output file on the device
String outFileName = new File(Environment.getExternalStoragePublicDirectory(
        Environment.DIRECTORY_MUSIC),"your_file.mp3");

OutputStream myOutput = new FileOutputStream(outFileName);

//transfer bytes from the inputfile to the outputfile
byte[] buffer = new byte[1024];
int length;
while ((length = myInput.read(buffer))>0 ){
   myOutput.write(buffer, 0, length);
}

//Close the streams => Better to have it in *final* block
myOutput.flush();
myOutput.close();
myInput.close();

}

メディア スキャナは (そのフォルダに .nomedia ファイルがない限り) ファイルを自動的に選択する必要がありますが、プロセスを高速化したい場合は、質問で参照したリンクを使用できます。

于 2013-02-04T22:27:42.027 に答える