我正在开发一个在线音乐android应用程序,我需要在第三方服务器上下载一些音乐,但他们只给我流链接,所以我正在寻找一种只通过流链接下载音乐的方法。
我的朋友在iOS工作,他可以在iOS中通过将流包合并到音乐文件来完成这项工作。
如果您想从任何url播放和下载.mp3文件,请按照建议的代码进行操作。
但是,如果你想从服务器下载一个文件,并将其存储在SD卡或内部存储设备上的任何位置,那么请遵循以下代码,
private class DownloadFile extends AsyncTask<String, Integer, String>{
@Override
protected String doInBackground(String... url) {
int count;
try {
URL url = new URL("url of your .mp3 file");
URLConnection conexion = url.openConnection();
conexion.connect();
// this will be useful so that you can show a tipical 0-100% progress bar
int lenghtOfFile = conexion.getContentLength();
// downlod the file
InputStream input = new BufferedInputStream(url.openStream());
OutputStream output = new FileOutputStream("/sdcard/somewhere/nameofthefile.mp3");
byte data[] = new byte[1024];
long total = 0;
while ((count = input.read(data)) != -1) {
total += count;
// publishing the progress....
publishProgress((int)(total*100/lenghtOfFile));
output.write(data, 0, count);
}
output.flush();
output.close();
input.close();
} catch (Exception e) {}
return null;
}
编辑:清单权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>