2014-09-05 14 views
6

Chcę pobierać i odtwarzać pliki wideo podczas pobierania. Ponieważ VideoView nie pomaga w tej sprawie, zdecydowałem się na pracę z nanoHTTPd w celu utworzenia serwera pseudo HTTP, a na moim własnym serwerze spróbuj pobrać plik wideo i zagraj go później, ale moim problemem jest:jak przesyłać strumieniowo wideo z Internetu przez nanoHTTPd do VideoView

1-Jak mogę spłukać do pobrania dołączyć do wideoview i pobrać pozostałe części?

Poniżej moje źródło:

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

wygląd tutaj, to odpowiedź na środku strony: http: // stackoverflow. com/questions/9987042/videoview-onresume-loses-buffered-part-of-the-video – CristiC777

Odpowiedz

-1

znalazł sposób, można przeczytać więcej na ten temat tutaj: http://www.vahidhashemi.com/?p=120

+2

Nie podoba mi się, że jest to odpowiedź typu "link only", ale jest pomocna (i jeszcze nie martwa). Byłoby lepiej, gdybyś mógł wyjaśnić ogólną ideę, więc pozostanie tutaj, gdy link umrze (to * umrze w końcu). W takim razie chciałbym to zrobić. – Matthieu

Powiązane problemy