2014-09-05 105 views
6

我想在下载过程中下载和播放视频文件。由于VideoView没有帮助这个问题,我决定使用nanoHTTPd创建一个伪HTTP服务器,并在我自己的服务器尝试下载视频文件并播放它后,但我的问题是:如何通过nanoHTTPd将视频从互联网流式传输到VideoView

1 - 如何刷新下载部分视频观看和下载其余部分?

以下是我的源:

public class VideoStreamingServer extends NanoHTTPD { 

     public VideoStreamingServer() { 
      // by default listening on port 8080 
      super(8080); 
     } 

     @Override 
     public Response serve(String URI, Method method, 
           Map header, Map parameters, Map files) { 

      FileInputStream fis = null; 
      try { 
//    fis = new FileInputStream("/mnt/sdcard/p/1.mp4"); 

       File bufferFile = File.createTempFile("test", "mp4"); 

       BufferedOutputStream bufferOS = new BufferedOutputStream(
         new FileOutputStream(bufferFile)); 

       HttpClient client = new DefaultHttpClient(); 
       HttpGet request = new HttpGet("http://www.example.net/dl/1.mp4"); 
       HttpResponse response = client.execute(request); 
       Header[] headers = response.getAllHeaders(); 
       Log.e("Internet buffer", "connected to server"); 

       BufferedInputStream bis = new BufferedInputStream(response.getEntity().getContent(), 2048); 


       byte[] buffer = new byte[16384]; 
       int numRead; 
       boolean started = false; 
       while ((numRead = bis.read(buffer)) != -1) { 

        bufferOS.write(buffer, 0, numRead); 
        bufferOS.flush(); 
        totalRead += numRead; 
        if (totalRead > 120000 && !started) { 
          //problem starts here 
          //How can I flush the buffer to VideoView? 


        } 

       } 


      } catch (FileNotFoundException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 


      return new NanoHTTPD.Response(Response.Status.OK, "video/mp4", fis); 
     } 
    } 
+0

这里看看,在页面中间的回答:HTTP://计算器。 com/questions/9987042/videoview-onresume-lose-bffered-portion-of-the-video – CristiC777 2014-09-15 10:09:31

回答

-1

找到了一种方法,你可以阅读更多关于它在这里:http://www.vahidhashemi.com/?p=120

+2

我不喜欢这是一个仅链接的答案,但它是有帮助的(并且还没死)。 如果你能解释一般的想法会更好,所以当链接死亡时它会停留在这里(最终会死掉)。然后我会赞成它。 – Matthieu 2016-09-06 17:34:57