MediaPlayer通过一个Http Url访问网络上的一个MP3,比如:http:/xxx.com/1.mp3使用seekTo跳转到一个没有缓存的位置时,
是从这个指定的位置开始缓存,还是从之前缓存的位置继续缓存到这个位置后再继续缓存?如果是后者,之前未缓存的数据如何再加载?

解决方案 »

  1.   

    URL url=new URL("http:/xxx.com/1.mp3")
    HttpURLConnection conn=(HttpURLConnction) url.openConnection();
    conn.setConnectTimeout(5*1000);
    conn.setRequestMethod("GET");
    if(conn.getResponseCode()!=200)throw new RuntimeException(“请求url失败");
    InputStream is=conn.getInputStream();
    readAsFile(is,"1.mp3");
    public static void readAsFile(inputStream inSream,File file)throws Exception{
    FileOutputStreaw outStreaw=new FileOutputStreaw(file);
    byte[] buffer=new byte[1024];
    int len=-1;
    while((len=inSreaw.read(buffer))!=-1){
    outStreaw.write(buffer,0,len);
    }
    outStreaw.close();
    inSream.close();
    }