Вы должны использовать «apache kafka» с python, который используется на глобальном уровне ..... Все типы ручных потоковых дескрипторов «apache kafka».
у передать аудио моего микрофона (который записывается через pyaudio) через Flask на любой клиент, который подключается.
Это откуда аудио приходит:
def getSound(self):
# Current chunk of audio data
data = self.stream.read(self.CHUNK)
self.frames.append(data)
wave = self.save(list(self.frames))
return data
Вот мой колб-код:
@app.route('/audiofeed')
def audiofeed():
def gen(microphone):
while True:
sound = microphone.getSound()
#with open('tmp.wav', 'rb') as myfile:
# yield myfile.read()
yield sound
return Response(stream_with_context(gen(Microphone())))
И это клиент:
<audio controls>
<source src="{{ url_for('audiofeed') }}" type="audio/x-wav;codec=pcm">
Your browser does not support the audio element.
</audio>
Иногда это работает, но в большинстве случаев я получаю[Errno 32] Сломанная труба"
Когда раскомментирую это с open ("tmp.wav") - part (self.save () опционально берет все предыдущие кадры и сохраняет их в tmp.wav), я как бы получаю поток, но все, что выходит из динамиков это «щелкающий» шум
Я открыт для любых предложений. Как мне получить вход моего микрофона в прямом эфире (без предварительной записи!) В веб-браузере?
Спасибо!