我正在尝试在Android上构建一个客户端来接收RTP流并播放它。我在stackoverflow和Google上搜索后发现,可以使用MediaPlayer类来实现此功能。但是当使用URL或文件作为数据源时才能使用MediaPlayer。在我的情况下,我的流媒体服务器将RTP流发送到客户端的特定端口。因此,是否有办法让MediaPlayer在不将其写入文件的情况下播放这个流?
你试过了吗?
你的MediaPlayer的“数据源”是你的rtsp链接 - rtsp://127.0.0.0:550/mystream.3gp
我用VideoView做到了这一点,MediaPlayer只是这个的抽象,所以不应该有太大的区别。
MedaiPlayer将解析rtsp url并启动Android RTSPEngine,它将与RTP服务器通信并建立相关端口以传输数据。
rtsp://se.rv.er.ip/mystream
基本上,RTSP对话发生在客户端和服务器之间(DESCRIBE,SETUP,PLAY),其中包含了一个RTP广播的.sdp文件所具有的信息。
除非发送流的服务器支持RTSP,否则您无法接收RTP流。
如果您需要更多细节,我建议您在流媒体客户端或服务器上运行Wireshark。我发现这有助于补充阅读RFC文档。
祝您好运!