2014-09-05 1 views
6

다운로드하는 동안 비디오 파일을 다운로드하고 재생하고 싶습니다. VideoView가이 문제에 도움이되지 않기 때문에 나는 가상 HTTP 서버를 만들기 위해 nanoHTTPd를 사용하기로 결정했고 내 서버 내부에서 비디오 파일을 다운로드하고 나중에 재생하려고했지만 내 문제는 다음과 같습니다.nanoHTTPd를 통해 인터넷에서 비디오를 VideoView로 스트리밍하는 방법

1 - 어떻게 플러시 할 수 있습니까? videoview에 참여하고 나머지 부분을 다운로드 하시겠습니까?

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

모습, 페이지의 중간에 대답

다음은 내 소스입니다. com/questions/9987042/videoview-onresume-lose-buffers-of-the-video – CristiC777

답변

-1

이 방법을 발견, 당신은 여기에 대한 자세한 내용을보실 수 있습니다 : HTTP : // 유래 여기 http://www.vahidhashemi.com/?p=120

+2

나는 링크 전용 답변을 좋아하지 않지만 도움이된다. 일반적인 아이디어를 설명 할 수 있다면 더 좋을 것이므로 링크가 끊어지면 여기에 머무르게됩니다 (결국 죽을 것입니다). 그럼 나는 그것을 upvote 것입니다. – Matthieu