【发布时间】:2016-01-26 08:08:16
【问题描述】:
所以我有一个 IP 摄像机,它可以输出可以通过 rtsp 协议连接的视频流。我想在我的 android 应用程序中显示它,所以我使用以下代码设置了一个视频视图;
VideoView vv = (VideoView)this.findViewById(R.id.videoView);
Uri uri = Uri.parse("rtsp://username:password@192.168.0.1:554/1/stream3");
vv.setVideoURI(uri);
vv.requestFocus();
vv.start();
我将它放在主 Activity 类的 onCreate() 中,因此当应用加载时,它会自动连接并开始流式传输。我对此的经验是它可以工作 - 但最终会变得不稳定,或者只是随机停止并且似乎永远不会再次恢复运行。我必须关闭应用程序并从内存中清除它并重新启动它才能恢复它 - 但不久之后它就会失去连接,这意味着它几乎没用。
我还发现触摸菜单或按钮等屏幕对象时似乎有点滞后,但这可能只是巧合 - 我不能肯定。
问题是来自同一网络上的 PC 的流是完美的,通过 VLC 使用相同的 URL。那么我做错了什么,有没有更好的处理流媒体视频的方法?我最终想将视频视图与一些重叠的文本和按钮结合起来,并可能在必要时截取屏幕截图。目前我很幸运,如果我能在视频中断前播放几秒钟的视频......
一些额外的cmets;
我在较长时间内运行它取得了一些成功 - 所以它并不总是很糟糕,这使得事情难以诊断。但是当它停止时,它就停止了。 如果丢失连接,videoview 是否会主动尝试重新连接? 有没有办法用进度指示器来证明这一点 - 所以它看起来不像什么都不做?
【问题讨论】:
标签: android video video-streaming android-videoview ip-camera