pyglet 播放视频的问题

1 投票
2 回答
4465 浏览
提问于 2025-04-15 16:45

我刚接触pyglet,遇到了一个视频播放的问题。
我想用pyglet播放一个视频,但窗口一打开就立刻关闭,视频根本没播放。
你们有没有什么解决办法,能让我保持窗口打开来播放视频呢?
我用的是Windows Vista 64位,Python 2.5。
请帮帮我。

这是我的代码:

vidPath="vid.avi"
window = pyglet.window.Window()
source = pyglet.media.StreamingSource()
MediaLoad = pyglet.media.load(vidPath)
player = pyglet.media.Player()
player.queue(MediaLoad)
player.play()

@window.event
...def on_draw():
... player.get_texture.blit(0,0)

非常感谢你的时间。

2 个回答

7

这可能有点晚了,讽刺的是,如果你在media_player.py的piglet文档中仔细查找,你可以把这些信息拼凑在一起。不过,对于那些花了几个小时试图让pygame在Windows上播放电影的人来说,尤其是那些无奈地尝试让pymedia与pygame正确对接并同步音频和视频,最终决定放弃转而使用piglet的人,这里有一个最简单的例子,可以让你顺利播放电影,并解决上面代码中的问题。

import pyglet
vidPath="TE5.mpg"
window = pyglet.window.Window()
player = pyglet.media.Player()
source = pyglet.media.StreamingSource()
MediaLoad = pyglet.media.load(vidPath)

player.queue(MediaLoad)
player.play()

@window.event
def on_draw():
    window.clear()
    if player.source and player.source.video_format:
        player.get_texture().blit(0,0)

pyglet.app.run()
0

我觉得应该加上“pyglet.app.run()”这个调用。

撰写回答