【问题标题】:How to switch between 2 audio tracks but 1 video file?如何在 2 个音轨但 1 个视频文件之间切换?
【发布时间】:2018-02-24 16:26:19
【问题描述】:

我是一个完全的 JavaScript 业余爱好者。我想创建一个部分,人们可以在其中切换 2 个音频和一个视频。我想显示音频的前后版本。

基本上,视频最初应该与音频的“之前”版本一起运行。然后应该有一个按钮可以将音频切换到“之后”版本,然后来回切换。

我尝试了“audioTracks”方法,但是浏览器兼容性不好。实现它的最佳方法是什么?

提前致谢。

【问题讨论】:

    标签: javascript audio audiotrack


    【解决方案1】:

    您只需使用两个 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()
      }
    }
    

    【讨论】:

    • 嗨。谢谢!我试过了,视频静音了。但是如何用按钮控制它?我想在界面中添加 2 个按钮。一种是播放/暂停视频和音频。其次是在 2 个音频之间切换。我该怎么做?
    • 显示切换音频的功能。例如,您可以有一个 html 按钮,onclick 在其中运行该功能(即<button onclick='switchAudio()'>switch</button>)。您可以使用另一个按钮和用于播放/暂停音频和视频的不同功能来执行相同的操作。
    • 请看我发布的答案。谢谢! :)
    • 嗨大卫!你认为你能帮我解决这个问题吗? :)
    【解决方案2】:

    做到了 :) 我做了一些改变。音频似乎工作得很好。我可以玩和切换它。但是视频没有通过按钮启动。所以我把代码改成这样:

    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;
     }
    }
    

    在此之后,视频将与音频一起播放。但是当我切换音频时,它们的时间不匹配。音频播放似乎有点晚了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-20
      • 2018-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-14
      • 1970-01-01
      • 2014-07-29
      相关资源
      最近更新 更多