如何切换2个音轨但1个视频文件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何切换2个音轨但1个视频文件?相关的知识,希望对你有一定的参考价值。

我是一个javascript业余爱好者。我想创建一个部分,人们可以在两个音频之间切换,同时运行视频。我想要显示音频的前后版本。

基本上,视频最初应与音频的“之前”版本一起运行。然后应该有一个按钮将音频切换到“后”版本,然后来回走动。

我尝试了“audioTracks”方法,但浏览器兼容性并不好。实现它的最佳方法是什么?

提前致谢。

答案

您只需使用两个html Audio元素,然后同步它们的时间:

var audio1 = new Audio()
var audio2 = new Audio()

audio1.src = 'pathToSource',
audio2.src = 'pathToSource2',

var video = document.getElementByID('myvideo');
video.muted = true; //mute video cuz we have audio already

function switchAudio(one, two, vid) {
  if(one.paused) {
    two.pause();
    one.currentTime = vid.currentTime;
    one.play
  } else {
    one.pause();
    two.currentTime = vid.currentTime;
    two.play()
  }
}
另一答案

这样做:)虽然我做了一些改变。音频看起来效果很好。我可以玩并切换它。但视频没有启动按钮。所以我把代码更改为:

function switchAudio(one, two, vid) {
 if (one.paused) {
    two.pause();
    vid.play();
    one.play();
    one.currentTime = vid.currentTime;
 } else {
    vid.pause();
    one.pause();
    vid.play();
    two.play();
    two.currentTime = vid.currentTime;
 }
}

在此之后,视频与音频一起播放。但是当我切换音频时,它们的时间不匹配。音频似乎播放的时间有点晚。

以上是关于如何切换2个音轨但1个视频文件?的主要内容,如果未能解决你的问题,请参考以下文章

C# 验证代码以在特定 SNR 下播放 2 个音轨

一次播放 15 个音轨,延迟小于 50 毫秒?

使用 SharpDx 或 IMSourceReader 从 mp4 文件中读取第二个音轨流

使用 AVPlayer 音频播放 AVMutableComposition 会不同步

电脑上有啥视频播放器可以用快捷键切换音轨(配音的)

合并音频和视频 Swift