2

我正在尝试播放一些视频。并得到错误:

python2.6: ../../src/xcb_io.c:183: process_responses: Assertion `!(req && current_request && !(((long) (req->sequence) - (long) (current_request)) <= 0))'失败。

我认为线程和 pygame 电影播放器​​中存在一些错误。

在 pygame 的文档中写道:

视频覆盖平面绘制在显示窗口中的所有内容之上。要将影片作为普通图形绘制到显示窗口中,请创建一个离屏 Surface 并将其设置为影片目标。然后每帧一次将该表面blit到屏幕上

谁能给我举个例子?

pygame.init()
screen = pygame.display.set_mode((1024, 768))
background = pygame.Surface((1024, 768))

screen.blit(background, (0, 0))
pygame.display.update()

movie = pygame.movie.Movie('media/video.mpg')
mrect = pygame.Rect(0,0,140,113)
movie.set_display(screen, mrect.move(65, 150))
movie.set_volume(0)
movie.play()

mrect2 = pygame.Rect(0,0,140,113)
movie2 = pygame.movie.Movie('media/video2.mpg')
movie2.set_display(screen, mrect2.move(350, 150))
movie2.set_volume(0)
movie2.play()
4

1 回答 1

1

您将两个视频设置在同一屏幕上,这可能是导致多线程错误的原因。尝试为每部电影定义新的 Surfaces 并在屏幕上对它们进行 blit

于 2016-06-17T09:33:13.267 回答