How to stream video from the Internet via nanoHTTPd to VideoView

I want to upload and play video files during upload. Since VideoView does not help in this matter, I decided to work with nanoHTTPd to create a pseudo HTTP server, and inside my own server try to download the video file and play it later, but my problem is:

1-How can I download the downloaded part to watch the video and download the remaining parts?

Below is my source:

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); } } 
+6
source share
1 answer

The method found, you can learn more about it here: http://www.vahidhashemi.com/?p=120

-1
source

Source: https://habr.com/ru/post/974903/


All Articles