web前端技术分享

VideoJS-轨道-音频轨道

2019-04-03  本文已影响0人  JuanitaLee

音频轨道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构造器的选项如下:

上一篇 下一篇

猜你喜欢

热点阅读