簡體   English   中英

在HTML5音頻播放器中尋求不一致

[英]Inconsistent seeking in HTML5 Audio player

我想從特定的時間戳開始播放音頻。 但我甚至無法讓最簡單的例子正常工作。 我嘗試了以下內容,並修改了w3school的例子

<body>
    <audio src="skyfall.mp3" id="audio" controls preload></audio>
    <button onclick="play()">Play</button>
</body>
<script type="text/javascript">
    var secs = 32;
    function play(){

        var p = document.getElementById("audio");
        p.currentTime = secs;
        console.log('Playing at secs: ' + secs); 
        p.play();
    }
</script>

但是每個瀏覽器都會播放不同的音頻:Chrome for Windows大約延遲4秒,Chrome for Android似乎是現貨,Mobile Safari關閉。 (即使VLC在播放文件時也會出現此問題。)如果從文件的開頭開始播放,它們將保持同步。

因此,我認為HTML5音頻標准要么被錯誤地實現,要么解釋得不好。

我已經讀到服務器端支持有時候會受到責備,但我不確定當我讀取本地文件時這會是一個什么問題。 最終,我希望在Cordova項目中實現這一目標。

有任何想法嗎?

我遇到了同樣的問題,我通過將我的MP3文件轉換為CBR(恆定比特率)格式來解決它。 然后,它可以解決currentTime和真實聲音之間的不一致問題。

選擇CBR格式


腳步:

  • 下載並安裝“Audacity”(任何平台都免費)
  • 打開你的MP3文件
  • 單擊[文件] - > [導出] - > [選項] - > [常量](請參閱: 將MP3轉換為恆定比特率
  • Audacity將要求您提供LAME MP3編碼器(請參閱:[下載並安裝LAME MP3編碼器])

不存在不一致/異步問題。


另見:

TJ_Tsai / tsungjung411@gmail.com

問題在於文件編碼。 對於MP3文件,只有恆定比特率搜索在所有瀏覽器中正確/一致地工作。 W3表示MP3是所有瀏覽器正式普遍支持的唯一格式,因此我認為使用CBR MP3就是答案。 也就是說,Mozilla有更深入的格式支持指南

當比特率不恆定時,瀏覽器會在給定相同時間戳的情況下尋找不同的音頻片段。 尋找算法對於恆定比特率是簡單的,但對於可變比特率更復雜(並且通常涉及某種形式的估計); 我無法在HTML標准中找到此操作的定義,因此不同的瀏覽器實現這一點並不令人驚訝。

這個答案有更多的討論和潛在的解決方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM