我正在尝试在Android上构建一个客户端,它将接收RTP流并播放它。 我搜索了stackoverflow和Google,发现可以使用MediaPlayer类。但是,当URL或文件用作数据源时,将使用MediaPlayer。 在我的场景中,我的流媒体服务器在我的客户端的特定端口上发送RTP流。 那么,有没有办法让MediaPlayer播放这个流而不将其写入文件。
答案 0 :(得分:1)
你试过了吗?
MediaPLayer的'数据源'是你的rtsp链接 - rtsp://127.0.0.0:550 / mystream.3gp
我使用VideoView完成了这项工作,MediaPlayer是对此的抽象,所以它不应该太过不同。
MedaiPlayer将解析rtsp网址并启动Android RTSPEngine,它将与RTP服务器通信,建立相关端口以传输数据。
答案 1 :(得分:0)
上述方法有效 - 您需要提供rtsp链接(您可能不需要端口,因为RTSP默认为端口554,而不是550)。
RTSP://se.rv.er.ip/mystream
本质上,客户端和服务器之间发生RTSP对话(DESCRIBE,SETUP,PLAY),其中包含RTP广播的.sdp文件信息。
除非发送RTP流的服务器支持RTSP,否则无法接收RTP流。
如果您需要更多详细信息,我建议您只在流媒体客户端或服务器上运行wireshark。我发现这有助于补充阅读RFC。
祝你好运!