[英]Play an external audio track instead on video's audio
假設它們的長度相同,有沒有辦法與視頻同步播放外部音軌? 這個想法是模擬音軌的變化,就像在電影中改變語言時一樣。 好像沒有本地方法。 順便說一句,這適用於瀏覽器,主要是 firefox 和 chrome。
我不確定這里的音頻上下文是否可以做些什么,或者我是否必須播放靜音視頻和音頻標簽,同時以某種方式確保它們同步?
謝謝!
有一個舊的但同時已棄用的 API 正是用於執行此操作。 它叫做MediaController
,今天在 Safari 中仍然有一個實現。
將兩個媒體元素分配給同一個控制器應該足以使它們相互同步。
<video controller="audio-and-video" src="video.file"></video>
<audio controller="audio-and-video" src="audio.file"></audio>
也可以使用稱為TimingObject
的更靈活的東西。 它沒有在任何瀏覽器中實現,但可以在純 JavaScript 中實現。 假設 HTML 與上面相同。
<video id="video" src="video.file"></video>
<audio id="audio" src="audio.file"></audio>
然后可以使用一些 JavaScript 將兩個媒體元素同步到同一個TimingObject
。
import { TimingObject } from 'timing-object';
import { setTimingsrc } from 'timingsrc';
const videoElement = document.getElementsById('video');
const audioElement = document.getElementsById('audio');
const timingObject = new TimingObject();
setTimingsrc(videoElement, timingObject);
setTimingsrc(audioElement, timingObject);
您可以通過更新TimingObject
來控制播放,而不是在其中一個媒體元素上調用play()
和pause()
。
// play
timingObject.update({ velocity: 1 });
// pause
timingObject.update({ velocity: 0 });
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.