播放rtsp-stream后1分钟后缓冲结束

时间:2012-06-25 18:23:57

标签: android video-streaming rtsp

我编写了一个小应用程序,只显示来自rtsp-stream的视频数据(使用MediaPlayer-class和SurfaceView-class)。使用vlc 2.0.0创建Rtsp-stream。

工作正常,但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提前......

2 个答案:

答案 0 :(得分:1)

可能正在达到会话超时。您可以检查PLAY请求中发回的标头,看看是否有timeout=指令给您!

如果你需要每隔这么多秒发出GET_PARAMETER请求,那么服务器就会终止你的会话。

另见Is there such a RTSP Ping?

如果您还需要其他信息,请告诉我们!

答案 1 :(得分:0)

因为我还不能发表评论。您是否尝试将其放在asyncTask上?或者在你的缓冲完成后它会播放出来吗?。

您还可以在AsyncTask上执行操作,您可以更改OnProgressUpdate(),然后可以在到达某个缓冲区时播放,也可以在完成后完全播放。