다운로드하는 동안 비디오 파일을 다운로드하고 재생하고 싶습니다. 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);
}
}
모습, 페이지의 중간에 대답
다음은 내 소스입니다. com/questions/9987042/videoview-onresume-lose-buffers-of-the-video – CristiC777