javascript - HTML 音频 - 负 playbackRate 值不起作用?

标签 javascript jquery html html5-audio

我正在播放 HTML 和 JS/JQuery 中的音频以构建音频播放器。我有播放、暂停和快进功能,但没有倒带或后退功能。在W3Schools Documentation它说:

playbackspeed Indicates the current playback speed of the audio/video. Example values:

-1.0 is backwards

所以我写的代码如下:

<audio id="player">
    <source src="http://www.dkedomain.com/public/podcast/shows/the-domain-episode-09.mp3" type="audio/mpeg" />
</audio>

<button class="rewind">Rewind</button>
<button class="play">Play</button>
<button class="pause">Pause</button>
<button class="twotimes">2x</button>
<button class="forward">Fast Forward</button>

<script>

    var player = document.getElementById('player');;
    player.load();

    $('button.rewind').click(function(){
        player.playbackRate = -1.0;
    });

    $('button.play').click(function(){
        player.play();
        console.log(player.currentTime);
    });

    $('button.pause').click(function(){
        player.pause();
        console.log(player.currentTime);
    });

    $('button.twotimes').click(function(){
        player.playbackRate = 2.0;
    });

    $('button.forward').click(function(){
        player.playbackRate = 3.0;
    });

</script>

如何使它按照记录的那样工作?

最佳答案

How can I play audio in reverse with web audio API? 的 Stack Overflow 答案显示设置 audio.playbackrate = -1 将起作用,但基于 WebKit 的浏览器除外。 Chrome 和 Safari 将忽略此设置,尽管其他浏览器可能支持它。

一件有趣的事情可能是实现 Rewind 以返回几秒钟,有点像一些 DVR 播放器。这样的事情可能会起作用:

$('button.rewind').click(function() {
    var currentTime = player.currentTime;
    player.currentTime = (currentTime >= 3.0) ? currentTime - 3.0 : 0;
});

您也可以对 Fast Forward 执行相同的操作,以获得特征的对称性。您的 2x 按钮是一个很好的“玩得更快”的解决方案,这是对这种方法的很好的补充。

我为此创建了一个 jsFiddle,其中包含您可能喜欢的各种其他更改:https://jsfiddle.net/mgaskill/11n63g3w/

关于javascript - HTML 音频 - 负 playbackRate 值不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37664454/

相关文章:

javascript - BootstrapValidator 未显示成功消息

javascript - 通过动画向左使 div 消失

javascript - 使用 jQuery 合并/组合表格单元格的内容

javascript - 如何将 float 转换为字节数组?

javascript - 将鼠标悬停在变化的图像上

javascript - 在 vue.js 中引用 v-for 中的先前值

javascript - 带有 useState 钩子(Hook)的 React 功能组件立即执行函数

javascript - jquery tablesorter 不适用于通过 ajax 获取的表,但适用于静态表

jquery - 相对于内容的 div 宽度

html - Twitter bootstrap 3.3 中的整页静态页脚