[英]How to play streaming audio from internet radio on Python 3.5.3
I am using Python 3.5.3 on Windows 8.1 x64 and i need play audio from here我在 Windows 8.1 x64 上使用 Python 3.5.3,我需要从这里播放音频
I have tried pyaudio, but it gives me only white noise and error occurred after a few runs of pyaudio (pyaudio module 'pyaudio' has no attribute 'PyAudio').我试过 pyaudio,但它只给我白噪声,并且在运行几次 pyaudio 后出现错误(pyaudio 模块 'pyaudio' 没有属性 'PyAudio')。
Please, advise me how better play the streaming audio from url, using Python...请告诉我如何更好地使用 Python 从 url 播放流音频...
PS I already got the song title and artist name with this code: PS我已经使用以下代码获得了歌曲名称和艺术家姓名:
import requests
import time
import datetime
print(datetime.datetime.now())
import re
url = 'http://prem1.rockradio.com:80/bluesrock?9555ae7caa92404c73cade1d'
encoding = 'latin1'
info = ''
radio_session = requests.Session()
while True:
radio = radio_session.get(url, headers={'Icy-MetaData': '1'}, stream=True)
metaint = int(radio.headers['icy-metaint'])
stream = radio.raw
audio_data = stream.read(metaint)
meta_byte = stream.read(1)
if (meta_byte):
meta_length = ord(meta_byte) * 16
meta_data = stream.read(meta_length).rstrip(b'\0')
stream_title = re.search(br"StreamTitle='([^']*)';", meta_data)
if stream_title:
stream_title = stream_title.group(1).decode(encoding, errors='replace')
if info != stream_title:
print('Now playing: ', stream_title)
info = stream_title
else:
pass
else:
print('No StreamTitle!')
time.sleep(1)
If you are open for external libraries, you can install vlc binding for python using pip install python-vlc
如果您对外部库开放,则可以使用pip install python-vlc
为 python 安装 vlc 绑定
And use player
method to play audio file directly from URL as below.并使用player
方法直接从 URL 播放音频文件,如下所示。
import vlc
import time
url = 'http://prem1.rockradio.com:80/bluesrock?9555ae7caa92404c73cade1d'
#define VLC instance
instance = vlc.Instance('--input-repeat=-1', '--fullscreen')
#Define VLC player
player=instance.media_player_new()
#Define VLC media
media=instance.media_new(url)
#Set player media
player.set_media(media)
#Play the media
player.play()
Advantage of vlc
player is that you can play most media types directly from URL (not just mp3) and also perform player like options such as vlc
播放器的优点是您可以直接从 URL(不仅仅是 mp3)播放大多数媒体类型,还可以执行播放器之类的选项,例如
>>> player.pause() #pause play back
>>> player.play() #resume play back
>>> player.stop() #stop play back
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.