我写了一个小应用程序,它只显示来自 rtsp 流的视频数据(使用 MediaPlayer 类和 SurfaceView 类)。 Rtsp-stream 使用 vlc 2.0.0 创建。
它工作正常,但在 1 分钟后播放结束。
在 logcat 中,我发现了以下几行:
//...
E/Overlay ( 138): Overlay 还没有准备好排队缓冲区
I/MyHandler( 138):在轨道索引 0 上收到 BYE
E/OMX-VDEC-720P( 138):Rxd i/p EOS,通知驱动程序已达到 EOS
E/OMX-VDEC-720P( 138): 已达到输出 EOS
E/OMX-VDEC-720P( 138): Rxd OMX_COMPONENT_GENERATE_EOS_DONE
D/XXX (10485): onCompletion() 已调用
//...
似乎(解码器?)缓冲区已满,因此播放结束。 我可以处理这些缓冲区,以便接收新数据吗?
这次我通过等待 onCompletion-Event 重置/重启解决了这个问题 MediaPlayer,但这并不是真正的方法,对吧?
有人对此有解决方案/想法吗?
Greetzn + thanx 提前 ...
最佳答案
可能已达到 session 超时。您可以检查 PLAY
请求中发回的 header ,看看是否有 timeout=
指令给您!
如果有,您必须按照该 header 的值指示的每隔那么多秒发出一个 GET_PARAMETER
请求,否则服务器将终止您的 session 。
如果您还需要什么,请告诉我!
关于android - 播放 rtsp-stream 时缓冲在 1 分钟后结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11195038/