簡體   English   中英

在JavaScript中播放一段聲音時如何獲得回調?

[英]How to get callback when section of sound has been played in JavaScript?

所以我開始創建一個“聲音映射”,它是一個由許多聲音片段組成的聲音文件(在這種情況下連接了 100 個聲音片段)。 它們存儲在單個 mp3 文件中。 我想知道的是,您如何判斷一個聲音何時播放完畢?

基本上我所擁有的是剪輯名稱到durationstartTime的 map 。 一旦聲音開始播放,您就可以輕松地執行setTimeout(callback, duration) ,但通常會有延遲,並且瀏覽器setTimeout不會 100% 與音頻播放性能保持一致。 有什么辦法可以讓音頻編碼本身告訴瀏覽器在軌道的某些點發出事件? 如果是這樣,我該如何 go 關於使用 ffmpeg 或其他工具進行編碼? 如果沒有,該怎么辦?

基本上我想在完整曲目的子塊完成時發出事件,這樣我就可以停止播放。 這樣就可以創建由許多聲音片段連接在一起的單個音軌,我可以跳到音軌中的不同位置。 但我面臨的問題是你怎么知道子剪輯何時結束播放? 就像我需要音頻編碼本身來擁有Audio API 讀取和發出的事件標記,諸如此類。

此代碼在瀏覽器中運行。

沒有音頻 API 類型的東西,知道特定聲音是否結束的唯一方法是分析 mp3 文件,這會產生更多延遲。 我認為你最好的選擇是使用 setTimeout,或者日期 function。

使用new Date()

所以我的想法是在開始時創建一個日期 object,然后添加毫秒直到部分結束。 當那個時間過去時,該部分已經播放完畢。

暫無
暫無

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

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