Лучший метод для чтения аудио Wav из чанка в браузере
Я получаю фреймы Wav с сервера Flask Websocket Python. Это моя тема:
def background_thread():
"""Example of how to send server generated events to clients."""
count = 0
audio = pyaudio.PyAudio()
stream = audio.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
frames_per_buffer=CHUNK)
while True:
ts = time.time();
count += 1
data = stream.read(CHUNK)
socketio.emit('my_response',
{'data': data},
namespace='/test')
Я хотел бы транслировать его в прямом эфире в моем браузере, используя аудио веб API.
let contexteAudio = new (window.AudioContext || window.webkitAudioContext)();
$(document).ready(function() {
var socket = io.connect('http://localhost:5000/test');
socket.on('connect', function() {
socket.emit('my_event', {data: 'I\'m connected!'});
});
socket.on('my_response', function(msg) {
let audioBuffer = msg.data;
let source = contexteAudio.createBufferSource();
contexteAudio.decodeAudioData(audioBuffer, function (buffer) {
source.buffer = buffer;
source.connect(contexteAudio.destination);
source.start(time);
time += source.buffer.duration;
}, function () {
console.log('error');
});
});
Это ошибка моего браузера:
Ошибка типа: не удалось выполнить decodeAudioData для BaseAudioContext: параметр 1 не относится к типу ArrayBuffer.
Есть ли способ передать мои данные в виде буфера массива?