web audio API과 어떻게 반대로 오디오를 재생할 수 있습니까? ...웹 오디오 API에서 역방향으로 오디오를 재생하려면 어떻게해야합니까?
11
A
답변
13
당신은 이런 식으로 뭔가를 할 수 :
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
인스턴스를 잡을 수있는 기본적이며, 그들을 뒤집으십시오.
3
<audio>
요소를 html5의 요소로 사용하고 playbackRate
속성을 음수 값으로 설정할 수 있습니다. 당신이 AudioBufferSourceNode 요소가있는 경우
자바 스크립트에서 다음과 같은
var song = document.getElementsByTagName('audio')[0];
song.playbackRate = -1;
6
을 수행 할 수 있습니다
audioBufferSourceNode.playbackRate = -1;
-EDIT-
웹킷은 해당 기능이 없습니다.
1
playbackRate = -1.0;
은 Safari (9.1.2)에서 작동합니다!
감사합니다. 실제로 playbackRate를 음수로 설정하는 것과 비슷한 것을 찾고 있었기 때문에 클립의 같은 지점에서 앞뒤로 쉽게 재생할 수 있었지만 유효한 응답 (및 작동하는!) 응답을받은 이후로 나는 받아 들일 것입니다. – lakenen
그래, 아마 당신이 뭔가 좀 덜 해커를 찾고 있다고 생각했는데, 이것이 내가 얻을 수있는 유일한 방법이었다. 가치있는 일을 위해서,이 접근법에 대해 몇 가지 코드를 만들 가능성이있다. 당신이 원하는 것은 -하지만 실제로 비행 중에 버퍼를 반대로 시도하지 않은, 그래서 나는 확실히 말할 수 없다. 어느 쪽이든, 그것은 다른 devs 웹 오디오와 놀고 보는 것이 좋다. API. 다행히 몇 개월 후에 적절한 문서가 표시되기를 바랍니다. –