how can i download audio file from server by url

后端 未结 2 2015
被撕碎了的回忆
被撕碎了的回忆 2021-01-07 14:38

how can i download audio file from server by url and save it to sdcard.

i am using the code below:

public void uploadPithyFromServer(String imageURL,         


        
相关标签:
2条回答
  • 2021-01-07 15:04

    you must also add

    android.permission.WRITE_EXTERNAL_STORAGE

    permission if you wish to write data to sd card.

    also post your logcat output , if you are getting any IOExceptions.

    0 讨论(0)
  • 2021-01-07 15:25

    Your example does not specify a request method and some mimetypes and stuff.
    Here you will find a list of mimetypes http://www.webmaster-toolkit.com/mime-types.shtml
    Find the mimetypes relevant to you and add it to the mimetypes specified below in the code.

    Oh and btw, the below is normal Java code. You'll have to replace the bit that stores the file on the sdcard. dont have an emulator or phone to test that part at the moment Also see the docs for storage permissions on sd here: http://developer.android.com/reference/android/Manifest.permission_group.html#STORAGE

      public static void downloadFile(String hostUrl, String filename)
      {
        try {      
        File file = new File(filename);
        URL server = new URL(hostUrl + file.getName());
    
    
        HttpURLConnection connection = (HttpURLConnection)server.openConnection();
        connection.setRequestMethod("GET");
        connection.setDoInput(true);
        connection.setDoOutput(true);
        connection.setUseCaches(false);
        connection.addRequestProperty("Accept","image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/x-shockwave-flash, */*");
        connection.addRequestProperty("Accept-Language", "en-us,zh-cn;q=0.5");
        connection.addRequestProperty("Accept-Encoding", "gzip, deflate");
    
        connection.connect();
        InputStream is = connection.getInputStream();
        OutputStream os = new FileOutputStream("c:/temp/" + file.getName());
    
        byte[] buffer = new byte[1024];
        int byteReaded = is.read(buffer);
        while(byteReaded != -1)
        {
          os.write(buffer,0,byteReaded);
          byteReaded = is.read(buffer);
        }
    
       os.close();
    
      } catch (IOException e) {
        e.printStackTrace();
      }
    

    Then call,

     downloadFile("http://localhost/images/bullets/", "bullet_green.gif" );
    

    EDIT: Bad coder me. Wrap that input InputStream in a BufferedInputStream. No need to specify buffersizes ect.
    Defaults are good.

    0 讨论(0)
提交回复
热议问题