html5 audio/video 回放在 chrome 上产生错误

html5 audio/video playback produces error on chrome

此实现适用于较小的视频,但会导致较大的视频和音频文件出错。该应用程序根据收到的部分范围请求提供 2 个流,audio/video 弹出 chrome window 并尝试同步音频和视频。对于较大的视频,大约 7 分钟后音频会产生以下错误。仅视频或仅音频流播放似乎不会发生这种情况。

2018-03-22 12:57:03.096, FINER, I/O Error during playback with parameters , 
 HTTPresponse=HTTP/1.1 206 
 Date: Thu, 22 Mar 2018 10:55:01 GMT
 Accept-Ranges: bytes
 Content-Range: bytes 6913082-9044857/9044858
 Content-Length: 2131776
 Content-Type: audio/wav

, Content-Length=2131775}: java.util.concurrent.TimeoutException: Idle 
timeout expired: 120001/120000 ms, 
2018-03-22 12:57:03.097, I/O Error during playback with parameters  
HTTPresponse=HTTP/1.1 206 
Date: Thu, 22 Mar 2018 10:55:01 GMT
Accept-Ranges: bytes
Content-Range: bytes 6913082-9044857/9044858
Content-Length: 2131776
Content-Type: audio/wav

, Content-Length=2131775}: {1},
 java.io.IOException: java.util.concurrent.TimeoutException: 
 Idle timeout expired: 120001/120000 ms
at 
org.eclipse.jetty.util.SharedBlockingCallback$Blocker.block
(SharedBlockingCallback.java:219)
at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:220)
at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:496)
at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
at java.io.BufferedOutputStream.write(Unknown Source)

那个超时...

java.util.concurrent.TimeoutException: Idle timeout expired: 120001/120000 ms
  at org.eclipse.jetty.util.SharedBlockingCallback$Blocker.block(SharedBlockingCallback.java:219)
  at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:220)
  at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:496)
  at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
  at java.io.BufferedOutputStream.write(Unknown Source)

...表示浏览器在 120,001 毫秒(2 分钟)内未从流中读取数据,连接已关闭。