Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何通过nanoHTTPd将互联网上的视频流传输到VideoView_Android_Video_Video Streaming_Download_Nanohttpd - Fatal编程技术网

Android 如何通过nanoHTTPd将互联网上的视频流传输到VideoView

Android 如何通过nanoHTTPd将互联网上的视频流传输到VideoView,android,video,video-streaming,download,nanohttpd,Android,Video,Video Streaming,Download,Nanohttpd,我想在下载过程中下载和播放视频文件。由于VideoView无法解决这一问题,我决定与nanoHTTPd合作创建一个伪HTTP服务器,并在我自己的服务器内尝试下载视频文件,然后播放,但我的问题是: 1-如何将下载的部分刷新到videoview并下载其余部分 以下是我的资料来源: public class VideoStreamingServer extends NanoHTTPD { public VideoStreamingServer() { // b

我想在下载过程中下载和播放视频文件。由于VideoView无法解决这一问题,我决定与nanoHTTPd合作创建一个伪HTTP服务器,并在我自己的服务器内尝试下载视频文件,然后播放,但我的问题是:

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);
        }
    }

找到一个方法,你可以在这里多读一点:

看,这里是一个答案在页面中间:我不喜欢这是一个链接唯一的答案,但它是有益的(而且还没有死)。如果你能解释一下一般的想法就更好了,这样当链接消失时它就留在这里(它最终会消失)。然后我会投赞成票。