Javascript 视频JS-在视频文件中添加备用音频曲目

Javascript 视频JS-在视频文件中添加备用音频曲目,javascript,html,audio,video,video.js,Javascript,Html,Audio,Video,Video.js,我有一个视频(URL=)有两个音频源(英语和配音)。我想将备用音频测试()添加到该视频中。我正在使用Video.js播放视频。我已使用此链接-()在视频中添加备用曲目,并且我能够在视频中添加曲目。但是,当我使用“更改曲目”图标切换曲目进行测试时,它没有播放视频中的音频,而英语和配音曲目中没有问题。 ''' (功能(窗口、videojs){ var player=window.player=videojs('maat-player'); var audioTrackList=player.aud

我有一个视频(URL=)有两个音频源(英语和配音)。我想将备用音频测试()添加到该视频中。我正在使用Video.js播放视频。我已使用此链接-()在视频中添加备用曲目,并且我能够在视频中添加曲目。但是,当我使用“更改曲目”图标切换曲目进行测试时,它没有播放视频中的音频,而英语和配音曲目中没有问题。 '''


(功能(窗口、videojs){
var player=window.player=videojs('maat-player');
var audioTrackList=player.audioTracks();
////////////////////////////添加新的奥迪轨道代码//////////
const usersAudioTrackList=[{
id:'1',
种类:“翻译”,
标签:“测试”,
语言:“卡纳达”,
音频:'https://cdnjs.cloudflare.com/ajax/libs/ion-sound/3.0.7/sounds/glass.mp3',
}];
////////////////////////////////////////////////////////////
var audioTrackSelect=document.getElementById(“audioTrackChoice”);
audioTrackSelect.addEventListener('click',函数(事件){
var track=audioTrackList[event.target.id];console.log(audioTrackList);
console.log('用户切换到track'+track.label);
track.enabled=true;console.log(event.target.id);
});
audioTrackList.on('单击',函数(){
对于(var i=0;i{
player.audioTracks().addTrack(
新建videojs.AudioTrack(track)//创建一个track对象。
);
});
对于(var i=0;i
''' 我们如何在视频中播放我的备用音频。在Video Js中看到一些帖子,说明使用Video.Js无法合并音频和视频。如果是这样的话,有谁能帮我找到合并音频和视频的库

工作小提琴-

仅用于播放视频。它只检测视频文件中已有的音频曲目。它不能帮助我们向视频文件添加新的外部音频曲目

//添加新的奥迪赛道代码//////////
const usersAudioTrackList=[{
id:'1',
种类:“翻译”,
标签:“测试”,
语言:“卡纳达”,
音频:'https://cdnjs.cloudflare.com/ajax/libs/ion-sound/3.0.7/sounds/glass.mp3',
}];
video.js的音频曲目列表中没有
音频
键。您可以访问本教程()。

仅用于播放视频。它只检测视频文件中已有的音频曲目。它不能帮助我们向视频文件添加新的外部音频曲目

//添加新的奥迪赛道代码//////////
const usersAudioTrackList=[{
id:'1',
种类:“翻译”,
标签:“测试”,
语言:“卡纳达”,
音频:'https://cdnjs.cloudflare.com/ajax/libs/ion-sound/3.0.7/sounds/glass.mp3',
}];
video.js的音频曲目列表中没有
音频
键。您可以访问本教程()

<!DOCTYPE html>
<html>

<head>

  <link href="https://vjs.zencdn.net/7.7.6/video-js.css" rel="stylesheet" />
</head>

<body>

  <video id="maat-player" class="video-js vjs-default-skin" controls width="500px" height="350px">
    <source src="https://bitmovin-a.akamaihd.net/content/sintel/hls/playlist.m3u8" type="application/x-mpegURL">
  </video>
  <div id="audioTrackChoice">

  </div>
  <script src="https://vjs.zencdn.net/7.7.6/video.js"></script>

  <script>
    (function (window, videojs) {
      var player = window.player = videojs('maat-player');
      var audioTrackList = player.audioTracks();
      ////////////////////////////add new audi track code//////////
      const usersAudioTrackList = [{
        id: '1',
        kind: 'translation',
        label: 'test',
        language: 'kannada',
        audio: 'https://cdnjs.cloudflare.com/ajax/libs/ion-sound/3.0.7/sounds/glass.mp3',
      }];

      ////////////////////////////////////////////////////////////
      var audioTrackSelect = document.getElementById("audioTrackChoice");

      audioTrackSelect.addEventListener('click', function (event) {
        var track = audioTrackList[event.target.id]; console.log(audioTrackList);
        console.log('User switched to track ' + track.label);
        track.enabled = true; console.log(event.target.id);
      });


      audioTrackList.on('click', function () {
        for (var i = 0; i < audioTrackList.length; i++) {
          var track = audioTrackList[i];
          if (track.enabled) {
            console.log('A new ' + track.label + ' has been enabled!');
          }
        }
      });


      audioTrackList.on('addtrack', function () {
        console.log('a track has been added to the audio track list');
      });




      audioTrackList.on('removetrack', function () {
        console.log('a track has been removed from the audio track list');
      });


      player.on('loadeddata', function () {
        console.log('There are ' + audioTrackList.length + ' audio tracks');
        usersAudioTrackList.forEach(track => {

          player.audioTracks().addTrack(
            new videojs.AudioTrack(track) // Create a track object.
          );
        });
        for (var i = 0; i < audioTrackList.length; i++) {
          var track = audioTrackList[i];
          //var option = document.createElement("option");
          var elem = document.createElement('input');
          elem.type = 'button';
          elem.value = track.label;
          elem.id = i;
          if (track.enabled) {
            elem.selected = true;
          }
          audioTrackSelect.append(elem);
          console.log('Track ' + (i + 1));
          ['label', 'enabled', 'language', 'id', 'kind'].forEach(function (prop) {
            console.log("  " + prop + ": " + track[prop]);
          });

        }
      });
    }(window, window.videojs));


  </script>
</body>

</html>