【问题标题】:How to play file immediately after loading in wx.media.MediaCtrl python?如何在 wx.media.MediaCtrl python 中加载后立即播放文件?
【发布时间】:2020-12-08 05:00:46
【问题描述】:

我想编写一个可以在加载文件后立即开始播放视频的代码。 但是 wx.media 根本不播放视频文件。我可以加载文件但不能播放。

import wx
import wx.media

class Panel1(wx.Panel):
    def __init__(self, parent, id):
        wx.Panel.__init__(self, parent, -1, style=wx.TAB_TRAVERSAL | wx.CLIP_CHILDREN)

        # Create some controls
        try:
            self.mc = wx.media.MediaCtrl(self, style=wx.SIMPLE_BORDER)
        except NotImplementedError:
            self.Destroy()
            raise
        self.mc.Load('output2.avi')#video file path
        self.mc.Play()


app = wx.App()
# create a window/frame, no parent, -1 is default ID
frame = wx.Frame(None, -1, "play audio and video files", size=(600, 600))
# call the derived class
Panel1(frame, -1)
frame.Show(1)
app.MainLoop()

如果你们能在这方面帮助我,我将非常感谢你们所有人。如何在媒体加载后立即播放文件。

【问题讨论】:

    标签: python wxpython media-player


    【解决方案1】:

    你可以这样做:

    self.Bind(wx.media.EVT_MEDIA_LOADED, self.OnMediaLoaded)
    def OnMediaLoaded(self, event):
        self.mc.Play()
    self.mc.Load('output2.avi')
     
    

    【讨论】:

      【解决方案2】:

      我在您的代码中找不到问题所在。也许 avi 电影很短并立即停止。或者你的 wxphyton 设置有问题。

      所以我使用 wxFormBuilder 创建了一个小应用程序。它具有正确的 wxpython 设置,并且在播放电影后它会不断重启电影。

      我已使用此avi movie 进行测试。 这些是启动后立即显示电影的 2 个 python 文件。

      wxFormBuilder 生成的代码:

      # -*- coding: utf-8 -*-
      
      ###########################################################################
      ## Python code generated with wxFormBuilder (version 3.9.0 Nov 17 2019)
      ## http://www.wxformbuilder.org/
      ##
      ## PLEASE DO *NOT* EDIT THIS FILE!
      ###########################################################################
      
      import wx
      import wx.xrc
      
      ###########################################################################
      ## Class wxfbFrameMain
      ###########################################################################
      
      class wxfbFrameMain ( wx.Frame ):
      
          def __init__( self, parent ):
              wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 500,300 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
      
              self.SetSizeHints( wx.DefaultSize, wx.DefaultSize )
      
              bSizer5 = wx.BoxSizer( wx.VERTICAL )
      
              self.statictext_player = wx.StaticText( self, wx.ID_ANY, u"Player", wx.DefaultPosition, wx.DefaultSize, 0 )
              self.statictext_player.Wrap( -1 )
      
              bSizer5.Add( self.statictext_player, 0, wx.ALL, 5 )
      
      
              self.SetSizer( bSizer5 )
              self.Layout()
      
              self.Centre( wx.BOTH )
      
          def __del__( self ):
              pass
      

      python 应用程序:

      import os
      import wx
      import wx.media
      from wxfbTest import wxfbFrameMain
      
      
      class FrameMain(wxfbFrameMain):
      
          def __init__(self):
              super(FrameMain, self).__init__(None)
      
              avi_file = r'file_example_AVI_480_750kB.avi'
      
              sizer = self.statictext_player.GetContainingSizer()
      
              self.media_ctrl = self.mc = wx.media.MediaCtrl(self, style=wx.SIMPLE_BORDER)
              sizer.Add( self.media_ctrl, 50, wx.ALL | wx.EXPAND, 5 )
              if os.path.exists(avi_file):
                  self.media_ctrl.Load(avi_file)
      
              self.Bind(wx.media.EVT_MEDIA_STOP, self._on_media_stop)
      
              self.Show()
              self.media_ctrl.Play()
      
          def _on_media_stop(self, event):
              self.media_ctrl.Play()
      
      
      if __name__=='__main__':
          app = wx.App()
          frame_main = FrameMain()
          app.MainLoop()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-03
        • 2017-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多