mplayer.Loadlist在使用MplayerCtrl的mplayer的情况下不起作用

时间:2015-09-24 12:35:23

标签: python mplayer

我在窗口和树莓派上使用python 2.7。

我指的是下面给出的链接。

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

我可以在MplayerCtrl中播放单个文件。 但是当我尝试加载播放列表文件时,MplayerCtrl没有响应。

以下给出的代码可以使用。

   self.mplayer = mpc.MplayerCtrl(self.panel, -1, mplayerpath)
   ..
   ..
   ..
   self.mplayer.Loadfile('I:\Outputsync.avi')
   self.playbackTimer.Start(100)
   self.mplayer.Start()  

另一种方式也有效。 -

   subprocess.call('mplayer.exe -playlist I:\playlist.txt -shuffle' ,shell=False)

FutureCall也有效。 -

  import wx
  import MplayerCtrl as mpc

  class Frame(wx.Frame):
      def __init__(self, parent, id):
          wx.Frame.__init__(self, parent, id)

          self.mpc = mpc.MplayerCtrl(self, -1, u'mplayer.exe')

          #wx.FutureCall(2500, self.mpc.Loadfile, u'Outputsync.avi')
          wx.FutureCall(2500, self.mpc.Loadlist, u'I:/playlist.txt')

          self.Show()

  if __name__ == '__main__':
      app = wx.App(redirect=False)
      f = Frame(None, -1)
      app.MainLoop()

但是这段代码不起作用。

   import MplayerCtrl as mpc
   self.mplayer = mpc.MplayerCtrl(self.panel, -1, mplayerpath)
   ..
   ..
   ..
   self.mplayer.Loadlist('I:\playlist.txt',1)
   self.playbackTimer.Start(100)
   self.mplayer.Start()  

这一回归'无'

  import MplayerCtrl as mpc
  def on_add_file(self, event):
         self.mplayer = mpc.MplayerCtrl(self.panel, -1, mplayerpath)
         ..
         ..
         ..
         mpc.MplayerCtrl.Loadlist(self.mplayer,'I:\playlist.txt',1)
         self.playbackTimer.Start(100)
         self.mplayer.Start()

请给我一些暗示我出错的地方。

1 个答案:

答案 0 :(得分:0)

我得到了答案。

文件名前缺少unicode前缀。

 import MplayerCtrl as mpc

 def on_add_file(self, event):     

        self.mplayer = mpc.MplayerCtrl(self.panel, -1, mplayerpath)
        ..
        ..
        ..
        subprocess.call('mplayer.exe -playlist I:\playlist.txt -shuffle' ,shell=False)

        self.mplayer.Loadfile(u'I:/Outputsync.avi')            
        self.mplayer.Loadlist(u'I:/playlist.txt',1)

        mpc.MplayerCtrl.Loadfile(self.mplayer,u'I:/Outputsync.avi')
        mpc.MplayerCtrl.Loadlist(self.mplayer,u'I:/playlist.txt',1)

        wx.FutureCall(1, self.mplayer.Loadlist, u'I:/playlist.txt' , 1)

        self.playbackTimer.Start(100)
        self.mplayer.Start()