Загрузка и обработка mp3-потока интернет-радио в PythonPython

Программы на Python
Anonymous
Загрузка и обработка mp3-потока интернет-радио в Python

Сообщение Anonymous »

Я хотел бы написать программу python, которая загружает mp3-поток интернет-радио, выполняет некоторую обработку данных и воспроизводит аудиопоток с компьютера >.
Мне не удалось найти способ сделать это правильно. До сих пор мне приходилось использовать этот код для чтения потоковых данных в блоках:

Код: Выделить всё

for block in r.iter_content(1024):
... process block
Затем я могу обработать эти блоки с помощью библиотеки звуковых файлов, и они правильно читаются как mp3:

Код: Выделить всё

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)}')
Тогда я знаю, что могу воспроизводить звук с помощью библиотеки pyaudio, инициализируя его с той же обнаруженной частотой дискретизации, количеством каналов и отправляя аудиоданные.
/>Правда, тут я не знаю, как:

[*]Как обрабатывать сам поток по мере его поступления. Я имею в виду, что я не могу просто добавить к файлуstream_bytes и увеличивать его навсегда, мне придется когда-нибудь его обрезать, но как управлять «заголовками» файлов, чтобы их можно было распознать как mp3? Как его обрезать или как заставить звуковой файл принимать новые «байты»? Я не вижу примеров потоковой передачи данных.
Конвертировать данные звукового файла в байтовые данные, приемлемые для pyaudio (но я как-нибудь с этим справлюсь)< /li>


Подробнее здесь: https://stackoverflow.com/questions/789 ... -in-python

Вернуться в «Python»