Chrome 如何使用Web音频API反向播放音频?

l7wslrjt  于 2023-08-01  发布在  Go
关注(0)|答案(4)|浏览(141)

如何使用web audio API反向播放音频?我在API文档中找不到任何东西...

ugmeyewa

ugmeyewa1#

你可以这样做:

var context = new AudioContext(),
    request = new XMLHttpRequest();
request.open('GET', 'path/to/audio.mp3', true);
request.responseType = 'arraybuffer';
request.addEventListener('load', function(){
    context.decodeAudioData(request.response, function(buffer){
        var source = context.createBufferSource();
        Array.prototype.reverse.call( buffer.getChannelData(0) );
        Array.prototype.reverse.call( buffer.getChannelData(1) );
        source.buffer = buffer;
    });
});

字符串
这是一个超级简单的例子-但关键是你可以在AudioBuffer中为每个通道抓取Float32Array示例并反转它们。

lrpiutwd

lrpiutwd2#

如果您有AudioBufferSourceNode元素:

audioBufferSourceNode.playbackRate = -1;

字符串

-编辑-

Webkit没有这个功能。
来源:https://bugs.webkit.org/show_bug.cgi?id=69725

monwx1rj

monwx1rj3#

您可以使用html5的<audio>元素,并将playbackRate属性设定为负数。
在JavaScript中,您可以执行以下操作

var song = document.getElementsByTagName('audio')[0]; 
song.playbackRate = -1;

字符串

pb3s4cty

pb3s4cty4#

playbackRate = -1.0;

字符串
现在可以在Safari(9.1.2)中使用!

相关问题