簡體   English   中英

播放外部音軌而不是視頻的音頻

[英]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.

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