我编写了一个小应用程序,它仅显示来自rtsp-stream的视频数据(使用MediaPlayer类和SurfaceView类)。 rtsp-stream是使用vlc 2.0.0创建的。
它工作正常,但1分钟后播放结束。
在logcat中,我发现了以下几行:
// ...
E /叠加(138):叠加尚未准备好将缓冲区排队
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 ...
最佳答案
可能已达到会话超时。您可以检查在PLAY
请求中发回的标题,以查看是否有给您的timeout=
指令!
如果必须按照标头的值指示的每隔这么多秒发出一个GET_PARAMETER
请求,否则服务器将终止您的会话。
另请参见Is there such a RTSP Ping?
如果您还有其他需要,请告诉我!
关于android - 在播放rtsp流时1分钟后缓冲结束,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11195038/