wmv文件加载后在wx.Media中播放视频的代码
Posted
技术标签:
【中文标题】wmv文件加载后在wx.Media中播放视频的代码【英文标题】:Code for playing video in wx.Media after the wmv file is loaded 【发布时间】:2011-10-06 12:49:34 【问题描述】:我是 wxPython 的新手,我必须编写一个可以在加载文件后立即开始播放视频的代码。我已经通过很多论坛尝试实现 10 - 20 个代码,但 wx.media 根本不播放视频文件。我可以加载文件但不能播放。
我需要一个简单的代码,我将在其中手动输入视频文件的路径名,加载此文件后它应该开始播放。
我正在使用 Windows XP、Python 2.7 和用于 Python 2.7 的 wxPython。
如果你们能帮我解决这个问题,我将非常感激。
以下是我用来load() 然后play() 文件的代码。还是不行。
import wx
import wx.media
class TestPanel(wx.Panel):
def __init__(self, parent):
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(r"C:\Documents and Settings\N1002401B\Desktop\test1.wmv")
#self.slider.SetRange(0, self.mc.Length())
#folder, filename = os.path.split("C:\Documents and Settings\N1002401B\Desktop\test1.wmv")
self.Bind(wx.media.EVT_MEDIA_LOADED, self.OnPlay)
def OnPlay(self,evt):
self.mc.Play()
app = wx.App(0)
frame = wx.Frame(None)
panel = TestPanel(frame)
frame.Show()
app.MainLoop()
谢谢你。
【问题讨论】:
【参考方案1】:您可以找到 wx.media 模块 here 的教程。
您必须在您的 MediaCtrl
对象上调用 Load(path)
和 Play()
。
在以后的帖子中包含您的代码的一小段 sn-p 是个好主意,这样我们就可以知道您到底尝试了什么。
【讨论】:
我在问题中添加了我的一段代码。您能告诉我代码有什么问题吗?为什么我没有收到任何错误,但您仍然看不到正在播放的 wmv 文件? 我已经修改了我的代码。现在我可以播放声音了,但视频没有出现在后台。 您的代码似乎正确。也许您使用的是伪造的视频格式?尝试使用另一个视频,尤其是当您可以听到声音但看不到视频时。 现在我的代码可以工作了。我用以下 line.self.mc = wx.media.MediaCtrl(self, style=wx.SIMPLE_BORDER) 添加了这个替换 self.mc以上是关于wmv文件加载后在wx.Media中播放视频的代码的主要内容,如果未能解决你的问题,请参考以下文章