在安卓设备上播放RTSP链接

4
我有一个视频链接列表,其中一些是http://,一些是rtsp://。
因此,我创建了一个方法,在Android中调用本地视图播放视频。它可以很好地处理http,但对于rtsp则失败了。实际上,它给了我一个错误,这个错误并没有帮助我知道rtps是受支持的媒体格式(http://developer.android.com/guide/appendix/media-formats.html)。
String url = (String) v.getTag();
            Intent intent = new Intent(android.content.Intent.ACTION_VIEW);
            Uri data = Uri.parse(url);
            intent.setDataAndType(data, "video/*");
            startActivity(intent);

任何想法?

可以为URL发布示例值。 - Sush
URL是动态的,因为它是直播流。所以,一旦流结束,它可能无法访问。 - Sam
@Martin Cazares是正确的。我也遇到了同样的问题。 - Sush
2个回答

1

RTSP是一种受防火墙影响很大的通信协议,http正常工作而rtsp不正常意味着您的防火墙可能正在阻止该内容,并且您获取的rtsp数据源可能配置为使用UDP。为了确保正确获取rtsp数据,您应更改路由器配置以不阻止该信息,记住rtsp可以使用UDP或TCP作为传输层,并根据安全系统进行调整。

希望这能有所帮助。

祝好!


嗯,我遇到了这个错误:找不到可处理的活动意图 { act=android.intent.action.VIEW dat=rtsp://XXXX/live/4fbd1d3c_0777_4eb1_08d0_d6cb8c68bf4b_20140103_134805 typ=video/ }*我将主机名更改为XXX。这告诉我它没有识别rtsp作为有效协议。 - Sam
是的,这意味着您无法获取数据,有两种方法可以解决这个问题:1. 如果您可以访问媒体服务器配置,则可以强制使用TCP传输协议;2. 降低安全设置以允许UDP内容。 - Martin Cazares
谢谢Martin。我现在会和系统管理员交谈。希望它能够正常工作。我会保持更新。 - Sam

0

尝试这段代码:

    VideoView videoView = (VideoView) findViewById(R.id.videoView1);
    MediaController mediaController = new MediaController(this);
    mediaController.setAnchorView(videoView);
    mediaController.setMediaPlayer(videoView);

    Uri video = Uri.parse("your_RTSP_link");
    videoView.setMediaController(mediaController);
    videoView.setVideoURI(video);
    videoView.start();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接