繁体   English   中英

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

[英]How can I play audio in reverse with web audio API?

如何使用Web音频API反向播放音频? 我似乎无法在API文档中找到任何内容......

你可以这样做:

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

这是一个非常简单的例子 - 但基本上你可以为Float32Array中的每个通道获取Float32Array实例并反转它们。

如果你有一个AudioBufferSourceNode元素:

audioBufferSourceNode.playbackRate = -1;

-编辑-

Webkit没有该功能。

资料来源: https//bugs.webkit.org/show_bug.cgi?id = 69725

您可以使用html5的<audio>元素并将playbackRate属性设置为负值。

在Javascript中,您可以执行以下操作

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM