2012-06-14 119 views
2

我在嘗試使用Android網絡瀏覽器播放MP4視頻(使用HTML5標記)時遇到問題。從Apache服務器在Android上播放MP4視頻的問題

我已經嘗試過使用直線HTML5和Video.JS插件(videojs.com),並且在兩種情況下都有相同的問題。描述我所看到的:

從Android瀏覽時,我網站上的視頻將無法播放。我點擊播放並彈出一個錯誤對話框,顯示「無法播放視頻,很抱歉,無法播放此視頻。」

當使用Video.JS時,我原本以爲這可能是一個視頻編碼問題,所以爲了嘗試隔離事物,我從videojs.com的主頁抓取了代碼和視頻(它工作正常在Android上),並把它們放在我的測試服務器上(運行apache)。事情在iPhone上正常工作,但不是在Android上。

第二步,我從videojs.com中提取相同的代碼和文件,並將它們放在運行IIS的不同開發服務器上。從那裏開始,任何Android I測試都很棒。

這意味着這是一個服務器配置問題,但這是我難倒的地方。我已經爲mp4文件(視頻/ mp4)的mime類型正確配置了apache和IIS。我通過在從兩臺服務器請求文件時查看HTTP標頭來驗證此情況。

有沒有人有任何其他設置的觀點?很明顯,代碼是正確的,並且它在IIS服務器上運行良好,但由於某種原因,當從我的Apache服務器提供服務時,它無法在Android上正確播放。

任何幫助,非常感謝。

感謝,

埃文

+0

您確定該視頻能夠在移動設備上播放嗎?有很多視頻不適合移動設備,最終會拋出「此視頻無法播放」的錯誤。 Android上的MediaPlayer只能播放「漸進式流媒體內容」,它基本上意味着:1.電影原子必須位於所有媒體數據原子之前。 2.剪輯必須合理交錯。如果沒有,你會得到我上面提到的錯誤。 – Guardanis

+0

鑑於相同的視頻在IIS服務器上正常工作,它似乎不是視頻本身的問題。只有當視頻放在Apache服務器上時,它纔會播放。 – Evan

+0

你的apache和IIS服務器之間的用戶代理字符串是如何處理的?即內容是基於UA? –

回答

1

我有同樣的問題,然後我發現,Android不喜歡安全的HTTP地址。一旦我從HTTP鏈接中刪除了「s」,它就會最終起作用。所以你的鏈接應該看起來像這樣:

<video width='640' height='360' src='http://domain.net/video/640x360_example.mp4' type='video/mp4' id='player1' autoplay='autoplay' controls='controls' preload='none'></video> 

希望這可以幫助你!我花了10個月尋找這種soltuion。 :)