我在想是否可能使用vlc.py打开(播放)音乐播放列表(.m3u文件)?我搜索了答案,但没有找到。我成功地播放了一个简单的mp3文件,甚至是一个mp3流,但对于播放列表我就没有那么幸运了。你能帮我吗,给我一些示例代码吗?我想在我的Python程序中能够浏览曲目(上一首和下一首)。先谢谢了
我在想是否可能使用vlc.py打开(播放)音乐播放列表(.m3u文件)?我搜索了答案,但没有找到。我成功地播放了一个简单的mp3文件,甚至是一个mp3流,但对于播放列表我就没有那么幸运了。你能帮我吗,给我一些示例代码吗?我想在我的Python程序中能够浏览曲目(上一首和下一首)。先谢谢了
这里是我为另一个项目编写的非常初步的代码模拟,适应于您的问题。
使用vlc.py,它应该允许您播放流式音频、m3u音频播放列表和mp3文件。
正如我所说,这是非常初步的代码,但它应该可以指引您正确的方向。
希望它能有所帮助。
import requests
import vlc
from time import sleep
urls = [
'http://network.absoluteradio.co.uk/core/audio/aacplus/live.pls?service=acbb',
'file:///home/rolf/test.m3u',
'file:///home/rolf/happy.mp3',
'http://statslive.infomaniak.ch/playlist/energy90s/energy90s-high.mp3/playlist.pls',
'http://streaming.radio.rtl2.fr/rtl2-1-44-128',
]
playlists = set(['pls','m3u'])
Instance = vlc.Instance()
for url in urls:
ext = (url.rpartition(".")[2])[:3]
test_pass = False
try:
if url[:4] == 'file':
test_pass = True
else:
r = requests.get(url, stream=True)
test_pass = r.ok
except Exception as e:
print('failed to get stream: {e}'.format(e=e))
test_pass = False
else:
if test_pass:
print('Sampling for 15 seconds')
player = Instance.media_player_new()
Media = Instance.media_new(url)
Media_list = Instance.media_list_new([url])
Media.get_mrl()
player.set_media(Media)
if ext in playlists:
list_player = Instance.media_list_player_new()
list_player.set_media_list(Media_list)
if list_player.play() == -1:
print ("Error playing playlist")
else:
if player.play() == -1:
print ("Error playing Stream")
sleep(15)
if ext in playlists:
list_player.stop()
else:
player.stop()
else:
print('error getting the audio')
只需更改路径,就可以开始了。
from vlc import Instance
import time
import os
class VLC:
def __init__(self):
self.Player = Instance('--loop')
def addPlaylist(self):
self.mediaList = self.Player.media_list_new()
path = r"C:\Users\dell5567\Desktop\engsong"
songs = os.listdir(path)
for s in songs:
self.mediaList.add_media(self.Player.media_new(os.path.join(path,s)))
self.listPlayer = self.Player.media_list_player_new()
self.listPlayer.set_media_list(self.mediaList)
def play(self):
self.listPlayer.play()
def next(self):
self.listPlayer.next()
def pause(self):
self.listPlayer.pause()
def previous(self):
self.listPlayer.previous()
def stop(self):
self.listPlayer.stop()
创建一个对象
player = VLC()
player.addPlaylist()
player.play()
time.sleep(9)
player.next()
time.sleep(9)
暂停歌曲
player.pause()
time.sleep(9)
恢复播放音乐
player.play()
time.sleep(9)
player.previous()
time.sleep(9)
停止歌曲
player.stop()