2011-09-15 90 views
1

我想创建一个应用程序,可以从服务器上精确下载音乐文件.mp3,因为我是Android开发领域的新手,所以我会很感激任何帮助来自你们。 我需要一些东西开始,我会很感激,如果你能给我一些有用的资源链接。 感谢从android下载一个mp3文件

回答

2

你能做到这样::

  try { 
        MediaPlayer player = new MediaPlayer(); 
     player.setAudioStreamType(AudioManager.STREAM_MUSIC); 
     player.setDataSource("http://xty/MRESC/images/test/xy.mp3" 
       ); 
     player.prepare(); 
        player.star(); 

    } catch (Exception e) { 
     // TODO: handle exception 
    } 

清单权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> 
<uses-permission android:name="android.permission.INTERNET"></uses-permission> 
+0

Thanx nik ..我想下载MP3文件,代码是给玩家的。 – clayforbrick

+3

虽然你的代码的作品,OP要求下载,而不是流 – Jimmar

11

如果你想从任何URL播放MP3档案,然后按照代码由nik建议。

但是,如果你想下载一个文件形成的服务器,并将其存储在SD卡或内部存储设备的任何地方,那么按照这个代码,

private class DownloadFile extends AsyncTask<String, Integer, String>{ 
@Override 
protected String doInBackground(String... urlParams) { 
    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> 
+0

thanx的代码,但即时通讯仍然有问题,因为我仍然不知道如何动态输入输入。我的意思是当用户复制并粘贴链接文本框,然后应用程序应该开始从该网站下载文件。 – clayforbrick

+0

@clayforbrick - 当用户复制 - 将链接粘贴到编辑文本框中时,只需获取该编辑文本并将其传递给下载文件URL url = new URL(“.mp3文件的URL,您要下载”));如果是用于保存文件,则将其传递给OutputStream output = new FileOutputStream(“/ sdcard/somewhere/nameofthefile saving file.mp3”); – user370305

+0

如果你发现这对你是正确的,那么请接受这个答案。谢谢:-) – user370305