本文介绍了如何通过nanoHTTPd将视频从互联网流式传输到VideoView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在下载过程中下载和播放视频文件。由于VideoView没有帮助这个问题,我决定使用nanoHTTPd来创建一个伪HTTP服务器,而在我自己的服务器里面尝试下载视频文件,然后再播放,但是我的问题是:
I want to download and play video files during downloading. Since VideoView is not helping with this matter I decided to work with nanoHTTPd to create a pseudo HTTP server and inside my own server try to download video file and play it afterward but my problem is :
1 - 如何将下载的部分刷新到视频视图并下载剩余部分?
1-How can I flush downloaded part to videoview and download the remaining parts?
以下是我的来源:
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);
}
}
推荐答案
找到一种方式,您可以在这里阅读更多信息:
Found a way, you can read more about it here : http://www.vahidhashemi.com/?p=120
这篇关于如何通过nanoHTTPd将视频从互联网流式传输到VideoView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!