0

我正在尝试通过此缓存视频

try {       
    URL oracle = new URL(url);
    URLConnection yc = oracle.openConnection();
    InputStream in = yc.getInputStream();

    File file = new File(getApplicationContext().getCacheDir() ,url);

    if(!file.exists()){
        file.setReadable(true);
        file.createNewFile();
        if (file.canWrite()){

            FileOutputStream out = new FileOutputStream(file);   

            byte[] buffer = new byte[1024];
            int len1 = 0;
            while ( (len1 = in.read(buffer)) > 0 ) {
                out.write(buffer,0, len1);
            }

            out.close();
        }

        in.close();

        Runtime.getRuntime().exec("chmod 755 "+getCacheDir() +"/"+ url);  
        videoView.setVideoPath("chmod 755 "+getCacheDir() +"/"+ url);

    }else {

        videoView.setVideoURI(Uri.parse(videoUrl));
    }
} catch (Exception e) {
    // TODO: handle exception
}
videoView.setVideoURI(Uri.parse(videoUrl));    
MediaController mc = new MediaController(VideoViewC.this);
videoView.setMediaController(mc);
videoView.requestFocus();
videoView.start();          
mc.show();

但我发现 Error java.net.SocketException: Connection reset by peer。

如果您有任何建议,请给我。

4

1 回答 1

1

我有我的案例问题,它特别包括我的 http 服务器,如果没有正确验证只是关闭了客户端连接,这是我的问题:

android-async-http 状态码和对 onFailure 的响应

也许你也有它,因为你的 httpservers 的特殊性

您是否实现了缓存视频文件?

于 2013-11-29T12:22:48.073 回答