Como reproduzir fluxo de áudio sem salvá-lo no arquivo com pyglet?
Agora eu tenho essas bibliotecas:solicitações de, pyglet, pyaudio
Como reproduzir um fluxo de áudio usando, por exemplo, deesta site sem salvá-lo no arquivo (usando buffer)?
Há informações confusas na documentação desta biblioteca sobre uma classe StreamingSource
Quando pressiono as informações em bytes no objeto StreamingSource (source.get_audio_data (DATA)) e depois pressiono esta em um Player (pyglet.media.Player ()), ele lança uma exceção, informando que o StreamingSource não duração do atributo
Código:
import pyglet, requests
req = requests.get('http://ic7.101.ru:8000/c15_3', stream=True)
player = pyglet.media.Player()
source = pyglet.media.StreamingSource()
CHUNK = 1024
for num, chunk in enumerate(req.iter_content(CHUNK)):
if num == 1000:
break
source.get_audio_data(chunk)
if num == 100:
player.queue(source)
player.play()
pyglet.app.run()
pyglet.clock.schedule_once(lambda dt: pyglet.app.exit(), source.duration)
Traceback:
Traceback (most recent call last):
File "/home/user/.PyCharmCE2017.1/config/scratches/scratch.py", line 16, in <module>
player.queue(source)
File "/usr/local/lib/python3.5/dist-packages/pyglet/media/__init__.py", line 978, in queue
group.queue(source)
File "/usr/local/lib/python3.5/dist-packages/pyglet/media/__init__.py", line 698, in queue
self.duration += source.duration
TypeError: unsupported operand type(s) for +=: 'float' and 'NoneType'