如何使用MPlayerC

2024-04-25 22:16:38 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我可以让媒体播放,但是当我尝试使用函数"self.mplayer.GetTimeLength()"时,它返回的是“none”,这不是什么。我也尝试过在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/


Tags: path函数selflen学校filewildcardmplayer
1条回答
网友
1楼 · 发布于 2024-04-25 22:16:38

我假设您已经从here复制了这个示例。我也有同样的问题。在this forum(德语)中,我发现您应该只在EVT_MEDIA_STARTED启动后调用GetTimeLength()。例如,移动:

    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()的末尾,输入:

^{pr2}$

相关问题 更多 >