在<video>元素上播放多个音轨?

时间:2019-01-08 20:24:46

标签: javascript html5 cross-browser

我正在尝试为常规HLS视频流创建可访问的<video>元素。但是,我注意到,没有跨浏览器的方法可以指定多个音轨并在它们之间进行有效切换,就像隐藏式字幕一样。

我已经考虑过audioTrack属性,但是在许多浏览器中都无法使用。我也尝试过mediaGroup,它也不兼容跨浏览器。

我见过的唯一可行的方法是video.jshttps://docs.videojs.com/docs/guides/audio-tracks.html),但我想知道是否有一种无需引入此库的方法。

奇怪的是,如果没有库,您将无法做到这一点。

最终目标是在所有(大多数)浏览器中以编程方式切换HTML5视频上不同语言音频的音轨。

1 个答案:

答案 0 :(得分:0)

如果我对您的理解正确,则希望能够在视频轨道上的语言之间进行切换。我发现这段代码具有主要的英语音轨,并允许您在英语和法语之间切换。您可以在https:gingertech.net

上了解更多信息。
<video id="v1" poster=“video.png” controls>
<source src=“video.ogv” type=”video/ogg”>
<source src=“video.mp4” type=”video/mp4”>
</video>

<script type="text/javascript">
video = document.getElementsByTagName("video")[0];

for (i=0; i < video.audioTracks.length; i++) {
    if (video.audioTracks[i].language.substring(0,2) === "fr") {
        video.audioTracks[i].enabled = true;
    } else {
        video.audioTracks[i].enabled = false;
    }
}
</script>