12
votes

Comment puis-je jouer audio en sens inverse avec API audio Web?


0 commentaires

4 Réponses :


4
votes

Vous pouvez utiliser

Dans JavaScript, vous pouvez faire ce qui suit P>

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


2 commentaires

La balise audio ne fonctionne pas à mes besoins, c'est pourquoi je dois utiliser l'API audio Web spécifiquement.


Le taux de lecture doit être compris entre 0,5 et 4,0. Les valeurs négatives ne fonctionnent pas encore. source MDN



6
votes

Si vous avez un élément AudiobufferSourCenode:

audioBufferSourceNode.playbackRate = -1;


2 commentaires

J'ai essayé cela et ça ne marche pas. Le MinValue sur l'audioparam Playbackrate est 0. Lorsque je l'ai défini sur une valeur inférieure à 0, il apparaît à la lecture de la valeur par défaut (qui est 1).


Okey ... c'est un bogue réel it Webkit :( BOGS.WEBKIT.ORG/SHOW_BUG. CGI? ID = 69725



16
votes

Vous pouvez faire quelque chose comme ceci:

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


2 commentaires

Cela fonctionne, merci. Je cherchais en fait quelque chose de plus comme régler la lecture de la lecture à un numéro négatif afin que je puisse jouer quelque chose en avant et en arrière facilement du même point dans le clip, mais que vous avez répondu à la question avec une réponse (et travaillant!) Valide, je vais accepte-le!


Oui, je pensais que tu cherchais probablement quelque chose d'un peu moins hacky, mais c'était la seule approche que je pourrais proposer. Pour ce que ça vaut la peine, il est probablement toujours toujours possible de construire un code autour de cette approche qui fera ce que vous voulez - mais je n'ai pas essayé d'inverser le tampon à la volée, donc je ne peux donc pas dire avec certitude. De toute façon, il est bon de voir d'autres devs jouer avec l'API audio Web. Espérons qu'une documentation décente commencera à se présenter dans les prochains mois.



1
votes
playbackRate = -1.0;
works in Safari (9.1.2) now!

0 commentaires