2012-10-05 123 views
2

我收到報告,指出我們的MediaElement.js音頻播放器不適用於某個特定的Android手機。 編輯:一些mp3文件可以工作,其他的則不可以。 mp3文件都是Mono 128kbs CBR,沒有ID3標籤。MediaElement.js音頻無法在某些設備上播放

我們只有一個音頻源,MP3,所有的默認選項。

的HTML是:

<audio src ="/path/to/a/file.mp3" type='audio/mp3'> 

這款手機是HTC的不可思議的2運行2.3.4,在默認瀏覽器。同樣的頁面可以在我用於測試的2.3.4設備和適用於2.3.3的android模擬器(無Flash)上運行。

根據用戶,玩家正確加載,並且看起來正常,然而,無論是音頻文件的實際長度,長度顯示爲一點40分00秒。第二次點擊播放通常會開始播放。

的想法在何處何去何從,有人嗎?

回答

2

音頻/視頻編解碼庫的實現是唯一的在Android的硬件供應商 - 不是所有的設備用於音頻/視頻解碼相同的庫,因爲它們使用不同的硬件爲這些目的。

正因爲如此,特別是在老版本的Android系統,媒體播放是不可靠的。

我在維亞康姆工作了六年,負責處理移動視頻和音頻傳輸,這是我遇到過的最棘手的問題之一,因爲沒有公平的解決方案,特別是因爲你不能強迫人們Flash(讓它面對它,是一個可怕的解決方案)。

我們花了很多時間與谷歌開發者的倡導者討論這個問題 - 好處是他們改進了OS的後續版本的接受套件,這意味着3.X和4.X在媒體方面具有更好的公司間兼容性回放。

我最喜歡的錯誤是,如果你有一個MP4視頻文件,音頻和視頻軌道失準(它們在不同的時間開始,符合規範),運行任何2.X系列的摩托羅拉手機將播放根本沒有音頻。

所以我想,我的答案是,你不能保證在這些設備上的可靠播放,你應該檢查音頻屬性,以確保所有的文件都由相同的編解碼器和編碼器生成具有相同的屬性。

此外,我會檢查,看看是否有些是立體聲的,有些是單聲道的,哪些有IDV3標籤,哪些沒有,等等 - 編解碼器是真的那麼挑剔。

這很遺憾,因爲這些公司沒有激勵來升級他們舊設備上的操作系統,以及我們被困在移動社區中,這些硬件不兼容,聲稱兼容性,所以我們甚至無法測試功能,而是必須明確地測試設備數據,而且還要測試軟件構建ID。

+0

任何編碼或ID3建議用於創建將在各種設備上播放的文件? – JeffS

+0

@JeffS我的建議是使用lame創建一個沒有id3標籤的單聲道cbr mp3,它必然會在最廣泛的情況下工作,但是同樣存在一些會導致編解碼器失敗的錯誤過於複雜的部分等等。從媒體開發人員的角度來看,Android只是一團糟。你有沒有想過爲什麼Netflix只能在少量的Android設備上使用?不幸的是,你知道。 – tkone

+0

請參閱我對行爲的評論。事實證明,這些文件將在瀏覽器中播放,在某些情況下 – JeffS

相關問題