Мне не удалось найти способ сделать это правильно. До сих пор мне приходилось использовать этот код для чтения потоковых данных в блоках:
Код: Выделить всё
for block in r.iter_content(1024):
... process block
Код: Выделить всё
stream_bytes = io.BytesIO()
stream_bytes.write(block)
...
# after writing some blocks convert mp3 data to audio data and samplerate:
data, samplerate = soundfile.read(stream_bytes)
print(f'{samplerate} {len(data)}')
/>Правда, тут я не знаю, как:
[*]Как обрабатывать сам поток по мере его поступления. Я имею в виду, что я не могу просто добавить к файлуstream_bytes и увеличивать его навсегда, мне придется когда-нибудь его обрезать, но как управлять «заголовками» файлов, чтобы их можно было распознать как mp3? Как его обрезать или как заставить звуковой файл принимать новые «байты»? Я не вижу примеров потоковой передачи данных.
Конвертировать данные звукового файла в байтовые данные, приемлемые для pyaudio (но я как-нибудь с этим справлюсь)< /li>
Подробнее здесь: https://stackoverflow.com/questions/789 ... -in-python