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

この例をhereからコピーしたと仮定しています。私はそれと同じ問題を抱えていました。このフォーラム(ドイツ語)から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 に答える