我在localhost中的rtsp服务器上有一个rtsp流。 我想用android类MediaPlayer播放这个文件。
如果我使用setDataSource(rtsp://localhost/file.sdp)它可以工作!!
我的问题是......如果我在我的http服务器上复制文件而我
setDataSource(http://localhost/file.sdp)
它不起作用!!我收到了一个I / O异常。
filePath = "http://localhost/file.sdp";
mediaPlayer.setDataSource(filePath);
mediaPlayer.prepare();
mediaPlayer.start();
如果我用vlc应用程序播放此文件,它可以正常工作。
答案 0 :(得分:1)
RTSP和HTTP是不同的协议。 HTTP服务器不会以相同的方式提供数据。它将发送HTTP标头等.VLC可能在某种程度上足够聪明,可以根据收到的数据推断协议,但Android的NuPlayer可能不那么复杂。
答案 1 :(得分:1)
RTSP“实时流协议”用于流媒体服务器。您可以通过RTSP协议在计算机/移动设备上观看远程服务器的实时视频广播。该协议仅处理媒体文件的播放。以下是RTSP的一些功能:
HTTP“超文本传输协议”用于在万维网上传输文件(文本,图形图像,声音,视频和其他多媒体文件)。 HTTP协议在远程服务器上托管的网页(包含文本,图形图像,声音,视频和其他多媒体)与其系统上的用户浏览器之间进行通信。我们可以通过HTTP协议观看流媒体视频。以下是HTTP的一些功能:
SDP“会话描述协议”由一组通信端点以及它们之间的一系列交互组成。 SDP包含有关流媒体的信息。它主要包含三个关于媒体的部分 - 会话描述,时间描述和媒体描述。 SDP本身不是一种文件类型,但它是一种协议,负责流媒体。 HTTP和RTSP都支持SDP。