我正在尝试使用WMP来流式传输.mp3文件。我有一个大约4mb大小的mp3文件。
使用的代码:
<OBJECT ID="MediaPlayer1" CLASSID="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95"
CODEBASE="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab# Version=5,1,52,701"
STANDBY="Loading Microsoft Windows Media Player components..." TYPE="application/x-oleobject"
width="300" height="70">
<param name="fileName" value="'+song_urlIE+'">
<param name="animationatStart" value="true">
<param name="transparentatStart" value="true">
<PARAM NAME="SendPlayStateChangeEvents" VALUE="True">
<PARAM NAME="AutoStart" VALUE="True">
<PARAM name="uiMode" value="none">
<PARAM name="PlayCount" value="9999">
<param name="autoStart" value="true">
<param name="showControls" value="true">
<param name="Volume" value="-300">
<param name="ShowStatusBar" value="true">
<param name="BufferingTime" VALUE="1">
<embed type="application/x-mplayer2" id="players" pluginspage="http://www.microsoft.com/Windows/MediaPlayer/"
BufferingTime=1 src="'+song_url+'" name="MediaPlayer1" width=300 height=70
showstatusbar=-1 autostart=1 showcontrols=1 volume=-300>
问题是,歌曲会继续缓冲,直到完全下载,然后只播放。
这能解决吗?
IIRC,根据我使用WMP的经验,如果Content-Type标头不正确,WMP将不会进行流式传输(下载时播放),并且将按照您观察到的方式进行操作。
要么是这样,要么实际的URL应该以".mp3"结尾,作为文件类型的提示。
或者两者兼而有之。
服务器代码为内容返回什么内容类型?是"audio/mpeg"还是其他什么?如果您不知道,请使用网络嗅探器进行发现。我不确定WMP是否使用浏览器的下载代理,所以您可以使用F12工具来观察URL。否则,请下载NetMon或Wireshark。