我编写了一个小应用程序,它仅显示来自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/

10-16 18:03