为何python-vlc无法播放从列表文件读取的URL?
问题解决:Python-VLC读取文件URL无法播放的问题
问题原因
readlines()方法读取文件时会保留每行末尾的换行符(\n),导致你拿到的url实际是"https://stream.liferadio.tirol/live/mp3-192\n",VLC无法识别带换行符的媒体资源定位符(MRL),因此报错。
解决方案
有两种简单的修复方式:
方式1:去除URL首尾的空白字符
修改读取URL的代码,用strip()去掉换行符及可能存在的空格:
with open('radiostationen.txt') as f: urls = f.readlines() url = urls[0].strip() # 添加strip()处理换行符
方式2:直接读取无换行符的行
使用read().splitlines()读取所有行,该方法会自动剔除每行末尾的换行符:
with open('radiostationen.txt') as f: urls = f.read().splitlines() # 替换readlines()为splitlines() url = urls[0]
修复后的完整代码示例
以方式2为例,完整代码如下:
import vlc import keyboard volume = 10 with open('radiostationen.txt') as f: urls = f.read().splitlines() url = urls[0] instance = vlc.Instance('--input-repeat=-1', '--fullscreen') player=instance.media_player_new() media=instance.media_new(url) media.get_mrl() player.audio_set_volume(volume) player.set_media(media) player.play()
此时读取的URL与硬编码内容完全一致,VLC可正常识别并播放流媒体。
内容的提问来源于stack exchange,提问作者SeppUnterwurzacher
相关产品推荐
相关产品推荐

