Utilisation de l'élément <audio> pour la lecture de l'audio brut

Je travaille sur un petit projet qui décrypte (using openpgp.js) et décode un fichier audio côté serveur à l'aide de l'API Web Audio. Le fichier décrypté arrive au client en tant que audio brut. Actuellement, je peux lire des fichiers audio à l'aide de source.start(0) mais il ne semble pas être facile de décharger l'audio vers une interface graphique qui permettrait aux utilisateurs de faire des choses comme ajuster le volume et rechercher à travers l'audio.

J'ai un objet AudioContext qui est décodé et mis en mémoire tampon avec createBufferSource

 function playSound(decodedAudio) { var source = context.createBufferSource(); source.buffer = decodedAudio; source.connect(context.destination); source.start(0); } 

Parce que c'est un audio brut reçu, je ne peux pas utiliser audio.src = ... quoi comme audio.src = ... avec un élément audio. Ou peut-être que je regarde quelque chose d'évident?
Existe-t-il un moyen de faire en sorte que cet audio décodé dans l'API Web Audio fonctionne bien avec un élément <audio> destination?

Le flux idéal ressemblerait à …
1) L'utilisateur clique pour activer la lecture d'un clip audio
2) L'audio est déchiffré côté serveur et envoyé au client comme un audio brut
3) L'audio est décodé et jouable, consultable … etc.

Des solutions possibles auxquelles j'aimerais les pensées
– Parce que les fichiers audio peuvent varier de 1 minute à 60 minutes, écrivez l'audio dans un fichier à l'aide de l'API FileSystem, puis utilisez un élément <audio> pour la lecture réelle
– Écrivez mon propre système de contrôle pour la pause, le lavage et le volume sur l'API Web Audio

Belle question! La solution la plus simple serait de stocker le contenu décodé dans un Blob .

Cela vous permettrait de définir l'attribut src .

 var blob = new Blob(decodedData, {type: "correct-mimetype/here"}); var url = URL.createObjectURL(blob); audio.src = url;