android原始mp3资源到原生android媒体存储

时间:2013-02-04 21:46:53

标签: android mp3 local-storage android-mediaplayer

我正在尝试将我的应用程序中嵌入的mp3资源保存到Android设备中。所以我可以稍后在默认的Android媒体播放器中播放它。

我可以获得我资源的输入流没问题。但我不能让它以默认的Java方式保存到设备中。

这两种解决方案似乎都不适合我:

  

How can I download a song and add it the user's music library?

1 个答案:

答案 0 :(得分: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文件),但是如果你想加快这个过程,你可以使用你在问题中提到的链接。