从播放列表中播放音乐 - wxPython
我用wxPython做了一个简单的音乐播放器,里面有一个窗口和一个面板,可以播放音乐,具体的做法可以参考这里的教程。
此外,我还给这个播放器添加了一个播放列表功能,使用了ObjectListView
,可以显示来自.m3u
文件的所有曲目。这个播放列表是一个单独的Python模块,
class MainPanel(wx.Panel):
def __init__(self, parent, playListSelected):
//stuff
def GetOLVColClicked(self, event):
item = event.GetEventObject().GetSelectedObjects()
print item[0]['path']
class MainFrame(wx.Frame):
def __init__(self, playList):
wx.Frame.__init__(self, parent=None, id=wx.ID_ANY,
title="ObjectListView Demo", size=(800,600))
panel = MainPanel(self, playList)
class GenApp(wx.App):
def __init__(self, playList, redirect=False, filename=None):
self.playList = playList
wx.App.__init__(self, redirect, filename)
def OnInit(self):
frame = MainFrame(self.playList)
frame.Show()
return True
当我点击播放列表中的任何曲目时,可以获取到这首歌的完整路径。我在想,怎么把这首歌发送到现有的音乐播放器中播放呢?或者说,这种做法是否不太对,有没有更好的方法来处理播放列表?
1 个回答
2
这种方法跟我当初想要改进自己mp3播放器时的想法很接近。为了在不同的类之间传递信息,我觉得使用pubsub(发布-订阅模式)是最优雅的解决方案,虽然它有点神奇。你可以看看我写的教程,或者在wxPython的维基上了解更多信息: