从播放列表中播放音乐 - wxPython

0 投票
1 回答
874 浏览
提问于 2025-04-17 19:05

我用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的维基上了解更多信息:

撰写回答