Comment puis-je jouer audio à l'inverse avec le API audio Web A >? Je n'arrive pas à trouver quoi que ce soit dans l'API Docs ... P>
4 Réponses :
Vous pouvez utiliser
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
Si vous avez un élément AudiobufferSourCenode:
audioBufferSourceNode.playbackRate = -1;
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
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; }); });
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.
playbackRate = -1.0; works in Safari (9.1.2) now!