我在網頁中使用Windows Media Player。我安裝了版本11,這是我現在正在測試的版本。該播放器嵌入在網頁上使用此HTML:Window Media Player在網頁上發出兩個音頻請求
<OBJECT id='MS_mediaPlayer' width="400" height="45" classid='CLSID:6BF52A52-394A-11D3-B153-00C04F79FAA6'
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'>
<param name='autoStart' value="false">
<param name='uiMode' value="invisible">
<param name='loop' value="false">
</OBJECT>
我打電話的JavaScript:
MS_mediaPlayer.URL = "SomeAudioFile.mp3"
MS_mediaPlayer.controls.play();
當我看着Fiddler我可以看到玩家實際下載「SomeAudioFile.mp3」兩次。有一些設置我錯了嗎?我試圖將「autoPlay」設置爲true,並避免調用「play()」。得到了相同的結果 - 兩次下載。
更新: 第一個請求的用戶代理是「Windows-Media-Player/11.0.5721.5268」。第二個是「Mozilla/4.0(兼容; MSIE 7.0; Windows NT 5.1; GTB6; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)「。看起來瀏覽器第二次運行相同的請求。不知道爲什麼
任何想法?
UPDATE(10年4月1日):
仍然沒有解決方案。
- 我徹底調試了JS,只有一個調用
MediaPlayer.URL='.....'
來設置音頻文件。沒有別的東西會觸發媒體播放器加載文件,也沒有其他地方引用頁面上的音頻文件。 - 另一個有趣的事實是,當我在我的開發Web服務器上本地運行瀏覽器時,不會發生這種情況(雙音頻加載)。但是對同一個Web服務器的其他遠程請求會生成雙音頻加載。
- 我相信我消除了與特定的IE版本或媒體播放器版本的任何關聯。這發生在IE6-8和WM9-12中
我直接從媒體播放器應用程序(通過網絡)打開WAV文件時看到相同的問題。它會加載文件2或3次(由Fiddler觀察)。由於某些原因,當文件具有MP3擴展名時不會發生這種情況。 – 2010-04-05 20:29:52
我終於找到了一個解決方案(實際上是解決方法):簡單地刪除第一個請求。對於我來說,第一個請求帶有一個'User-Agent:Windows-Media-Player/12.x.y.z',第二個請求將以'User-Agent:NSPlayer/12.x.y.z WMFSDK/12.x.y.z'的形式出現。第二個似乎是唯一重要的。我有PHP完全忽略了第一個請求,並且一切都很好。因人而異。我認爲這是內部WMP行爲,所以我們無法阻止它,只能緩解它。 – ken 2013-08-13 16:11:03