VideoJS-轨道-音频轨道
音频轨道Audio Tracks
音轨允许为视频选择替代音频,可为用户提供备用音轨选择,以便播放主轨之外的音轨。videojs提供了音轨跨浏览器实现。
注意事项
我们无法像使用文本轨道一样通过HTML添加音轨频道,必须以编程方式添加。
videojs只存储轨道描述,切换用于播放的音轨不由Video.js处理,必须在其他地方处理 - 例如, videojs-contrib-hls处理切换音轨以支持通过用户界面选择音轨。
使用音轨
给播放器添加一个音轨:
//Create a player.
var player = videojs('my-player');
//Create a track object
var track = new videojs.AudioTrack({
id: 'my-spanish-audio-track',
kind: 'translation',
lable: 'Spanish',
language: 'es'
});
// Add the track to the player's audio track list.
player.audioTracks().addTrack(track);
监听音轨可用事件
当在AudioTrackList上启用或禁用轨道时,将会触发change事件,你可以监听这个事件并做一些事情。
注意:初始AudioTrack选项(通常是选定的主轨道)不应触发更改事件。
// Get the current player's AudioTrackList object.
var audioTrackList = player.audioTracks();
// Listen to the "change" event.
audioTrackList.addEventListener('change', function() {
// Log the currently enabled AudioTrack label.
for (var i = 0; i < audioTrackList.length; i++) {
var track = audioTrackList[i];
if (track.enabled) {
videojs.log(track.label);
return;
}
}
});
从播放器移除音轨
假设某个播放器已经存在并且您想要删除一个音频轨道,您可能会执行以下操作:
// Get the track we created in an earlier example.
var track = player.audioTracks().getTrackById('my-spanish-audio-track');
// Remove it from the audio track list.
player.audioTracks().removeTrack(track);
videojs.AudioTrack
这个类基于AudioTrack标准,用于创建新的音频轨道对象。
AudioTrack构造器的选项如下:
-
id
轨道的一个唯一标识,如果没有给出,videojs会自动创建一个。 -
kind
Video.js支持AudioTracks的标准类型值:
1、""
(default):没有明确的类型,或者用户代理无法识别轨道元数据给出的类型。
2、"alternative"
:主轨道的可能替代方案。
3、"descriptions"
: 视频轨道的音频描述。
4、"main"
: 此视频的主要音轨。
5、"main-desc"
: 主音轨,并且混合了音频描述。
6、"translation"
: 主音轨的翻译版本。
7、"commentary"
: 主要音轨的评论,例如 导演的评论。 -
label
将向用户显示的轨道标签。 例如,在菜单中列出可用作备用音轨的不同语言。 -
language
用于音频轨道语言的有效BCP 47代码,例如 “ en”代表英语,“ es”代表西班牙语。
相关支持的语言翻译,请参阅Video.js根目录中的语言文件夹(/ lang),并参阅语言指南以获取有关Video.js中语言的更多信息。 -
selected
无论轨道是否在播放,一次只能选择一个视频轨道。