Laissez-moi commencer par le fait que je suis relativement nouveau dans le jeu de développement web et que j'utilise à peine socket.io depuis plus d'une semaine. J'ai essayé de lire l'audio à partir du ArrayBuffer reçu de socket.io correspondant à un transfert de fichiers MP3 en utilisant Web Audio API. Le ArrayBuffer est décodé avec succès par WebAudio mais le seul problème que j'ai est qu'il prend environ 10 secondes après avoir reçu le morceau initial du ArrayBuffer pour commencer à jouer cette chanson.Retard de l'API Web Audio lors de la lecture de socket.io pour recevoir ArrayBuffer depuis le serveur
Ma compréhension est qu'il attend que le fichier entier soit diffusé, puis commence la lecture ?? Y a-t-il une meilleure façon de jouer sur la piste dès l'arrivée des premiers morceaux?
Voici comment je l'utilise actuellement:
socket.on('browser:buffer', function(data) {
console.log(data.buffer);
source = audioContext.createBufferSource();
audioContext.decodeAudioData(data.buffer, function(decodedData) {
source.buffer = decodedData;
source.connect(audioContext.destination);
source.loop = true;
source.connect(audioContext.destination);
source.start(0);
});
}, function(error) {
console.error("decodeAudioData error", error);
});
Oui, je fini par utiliser la deuxième option quand j'ai réalisé WebAudio est un peu plus puissant que mon cas d'utilisation. – nitimalh