12

WebオーディオAPIを使用してオーディオを逆再生するにはどうすればよいですか?APIドキュメントに何も見つからないようです...

4

4 に答える 4

17

あなたはこのようなことをすることができます:

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は、AudioBufferの各チャネルのインスタンスを取得して、それらを逆にすることができるということです。

于 2012-06-11T00:11:59.357 に答える
6

AudioBufferSourceNode要素がある場合:

audioBufferSourceNode.playbackRate = -1;

-編集-

Webkitにはその機能はありません。

ソース:https ://bugs.webkit.org/show_bug.cgi?id = 69725

于 2012-03-26T15:29:19.983 に答える
4

<audio>html5の要素を使用して、playbackRateプロパティを負の値に設定できます。

Javascriptでは、次のことができます

var song = document.getElementsByTagName('audio')[0]; 
song.playbackRate = -1; 
于 2012-03-26T14:46:03.773 に答える
1
playbackRate = -1.0;

Safari(9.1.2)で動作するようになりました!

于 2016-09-01T14:44:23.233 に答える