2013-11-27 51 views
1

我們運行一個IIS 7服務器託管一個播放短10-20秒MP3的站點。我們用我們的球員的代碼是:爲什麼有些客戶端不能從IIS播放一些html5音頻?

<audio autoplay="autoplay" controls id="audio_player" preload="auto" > 
<source id="mp3_src" src="path_to_mp3/clip.mp3" type="audio/mpeg"> 
<source id="ogg_src" src="path_to_ogg/clip.ogg" type="audio/ogg"> 
<!-- BEGIN fallback --> 
<object type="application/x-shockwave-flash" data="/flash_mp3_player.swf" width="340" height="50"> 
<param name="movie" value="/flash_mp3_player.swf" /> 
<param name="wmode" value="transparent" /> 
<param name="flashvars" value="filename=path_to_mp3/clip.mp3;autostart=true" /> 
<embed href="html5-mp3player.swf" width="340" height="50" name="player" align="" type="application/x-shockwave-flash" flashvars="filename=path_to_mp3/clip.mp3;autostart=true"/> 
</object> 
<!-- END fallback --> 

對於大多數用戶來說,這不是一個問題。我們每隔幾分鐘就會播放大約50個剪輯,並且幾乎在所有主要平臺上都有用戶(Win XP-8,OS X 10.4+,iOS 5+,Android 2+等)。

最近,隨着我們的工作量增加,我們看到大量的人說剪輯沒有爲他們玩。大多數時候我們都沒有聽到特定的錯誤,但是當我們這樣做時,幾乎總是IE9 +報告「錯誤:未知文件類型或無效文件路徑」。

在這一點上,我們很難過。 IIS框不是在物理上掙扎,而且這個站點是唯一的。以下是可能有所幫助的環境變量列表。

  • 的Windows Server 2008 IIS 7
  • MIME類型是否正確配置
  • MP3剪輯生活在一個虛擬目錄,但也有一些是在服務器上。這兩個地點可能無法發揮
  • 沒有在一個由IIS記錄的錯誤不能爲客戶
  • 這發生在白天和晚上
  • 這種情況看似隨機與超過20萬個不同的文件
  • 的所有時間玩
  • 所有的MP3都在128kbps的編碼@ 44100
  • 的HTML5和Flash的部分都是容易出現的故障
  • 通常情況下,請求是206,雖然它並不少見,200個迴應
  • 有1個應用程序池爲網站設置,並配置爲只使用1個工作進程
  • 我們從未能夠重現錯誤,無論是在網絡上或從網站服務
  • 通常,用戶可以刷新(多次)並實際上得到剪輯加載和播放通過

任何幫助或點在正確的方向將不勝感激。

謝謝!

+0

[嘗試與其他一些比特率測試](http://stackoverflow.com/questions/15720000/html5-audio-in-ie9)。 – admdrew

+0

我們試過把它敲下來無濟於事。同樣的問題。任何其他想法? – sesamechicken

+0

對不起,比特率是我看到的。 – admdrew

回答

0

我們已經做了幾件事來嘗試解決這個問題。我們將一部分媒體轉移到aws s3存儲桶並重構了一些代碼。

本質上,我們通過ID和標記引用將偵聽器添加到音頻元素,並且這些都是從兩個不同的位置調用的。在我們整合代碼以保留在外部js文件中,並將所有偵聽器設置在從ajax頁面調用的函數中之後,事情似乎開始奏效。

我們仍然看到一些(很少)與IE9 +的問題,但有一個錯誤監聽器來監視它。每次用戶報告錯誤時,錯誤偵聽器都會報告一個狀態碼爲4(MEDIA_ERR_SRC_NOT_SUPPORTED),這是奇數。

所以,問題大多是固定的。現在爲IE追蹤錯誤代碼4(即使所有文件最終都會通過它播放)。也許它與安裝在負責MP3播放的機器上的媒體播放器有關?