嵌入式Windows媒体播放器继续缓冲


Embedded Windows media player continues to buffer

我正在尝试使用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。