【发布时间】:2018-02-24 16:26:19
【问题描述】:
我是一个完全的 JavaScript 业余爱好者。我想创建一个部分,人们可以在其中切换 2 个音频和一个视频。我想显示音频的前后版本。
基本上,视频最初应该与音频的“之前”版本一起运行。然后应该有一个按钮可以将音频切换到“之后”版本,然后来回切换。
我尝试了“audioTracks”方法,但是浏览器兼容性不好。实现它的最佳方法是什么?
提前致谢。
【问题讨论】:
标签: javascript audio audiotrack
我是一个完全的 JavaScript 业余爱好者。我想创建一个部分,人们可以在其中切换 2 个音频和一个视频。我想显示音频的前后版本。
基本上,视频最初应该与音频的“之前”版本一起运行。然后应该有一个按钮可以将音频切换到“之后”版本,然后来回切换。
我尝试了“audioTracks”方法,但是浏览器兼容性不好。实现它的最佳方法是什么?
提前致谢。
【问题讨论】:
标签: javascript audio audiotrack
您只需使用两个 HTML 音频元素,然后同步它们的时间:
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()
}
}
【讨论】:
<button onclick='switchAudio()'>switch</button>)。您可以使用另一个按钮和用于播放/暂停音频和视频的不同功能来执行相同的操作。
做到了 :) 我做了一些改变。音频似乎工作得很好。我可以玩和切换它。但是视频没有通过按钮启动。所以我把代码改成这样:
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;
}
}
在此之后,视频将与音频一起播放。但是当我切换音频时,它们的时间不匹配。音频播放似乎有点晚了。
【讨论】: