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中播放视频的代码的主要内容,如果未能解决你的问题,请参考以下文章

使用 C#.Net 播放 .WMV

用暴风影音播放WMV格式视频时说找不到指定模块是怎么回事?

网页播放的视频代码

wmv

MP4播放器支持啥格式的视频文件?

为啥我上传的视频出现“文件扩展名和文件格式不匹配无法播放”的提示啊