0

我正在做一个关于制作媒体播放器的学校项目。我正在使用 python 和wxPython我的 GUI 和 MPlayerCtrl 作为我的库来控制我的所有按钮。但是我在使用 MPlayerCtrl 时遇到问题。我似乎无法让 MPlayerCtrl 中的功能正常工作。

我可以播放媒体,但是当我尝试使用该功能"self.mplayer.GetTimeLength()"时,它返回给我的是“无”,这没什么。我也尝试过使用 MPlayerCtrl 中的其他功能,但仍然遇到同样的问题。谁能告诉我我做错了什么?

部分代码:


def on_add_file(self, event):
    """
    Add a Movie and start playing it
    """
    wildcard = "Media Files (*.*)|*.*"
    dlg = wx.FileDialog(
        self, message="Choose a file",
        defaultDir=self.currentFolder, 
        defaultFile="",
        wildcard=wildcard,
        style=wx.OPEN | wx.CHANGE_DIR
        )
    if dlg.ShowModal() == wx.ID_OK:
        path = dlg.GetPath()
        self.currentFolder = os.path.dirname(path[0])
        trackPath = '"%s"' % path.replace("\\", "/")
        self.mplayer.Loadfile(trackPath)

        t_len = self.mplayer.GetTimeLength()
        print t_len
        #self.playbackSlider.SetRange(0, t_len)
        #self.playbackTimer.Start(100)

参考: http: //www.blog.pythonlibrary.org/2010/07/24/wxpython-creating-a-simple-media-player/

4

1 回答 1

1

我假设你已经从这里复制了这个例子。我有同样的问题。从这个论坛(德语)我发现你应该只在解雇GetTimeLength()后打电话。EVT_MEDIA_STARTED对于您的示例,请移动:

    t_len = self.mplayer.GetTimeLength()
    self.playbackSlider.SetRange(0, t_len)
    self.playbackTimer.Start(100)

from on_add_file()on_media_started(),并在 末尾on_add_file(),放:

    self.playbackTimer.Start()
    self.mplayer.Start()
于 2013-01-27T16:37:56.207 回答