アプリに埋め込まれた mp3 リソースを Android デバイスに保存しようとしています。後でデフォルトの Android メディア プレーヤーで再生できるようにします。
リソースの入力ストリームを問題なく取得できます。しかし、デフォルトのJavaの方法でデバイスに保存することはできません。
そして、これらのソリューションは両方とも私にはうまくいかなかったようです:
アプリに埋め込まれた mp3 リソースを Android デバイスに保存しようとしています。後でデフォルトの Android メディア プレーヤーで再生できるようにします。
リソースの入力ストリームを問題なく取得できます。しかし、デフォルトのJavaの方法でデバイスに保存することはできません。
そして、これらのソリューションは両方とも私にはうまくいかなかったようです:
まず、アプリケーションに適切な権限があることを確認してください。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 ファイルがない限り) ファイルを自動的に選択する必要がありますが、プロセスを高速化したい場合は、質問で参照したリンクを使用できます。