2

私はいくつかのビデオを再生しようとしています。エラーが発生しました:

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

スレッド、および pygame ムービー プレーヤーにエラーがあると思います。

pygame のドキュメントには次のように書かれています。

ビデオ オーバーレイ プレーンは、表示ウィンドウ内のすべての上に描画されます。ムービーを通常のグラフィックスとして表示ウィンドウに描画するには、オフスクリーン サーフェスを作成し、それをムービー ターゲットとして設定します。次に、フレームごとに 1 回、そのサーフェスを画面にブリットします

誰かの例を教えてください。

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

両方のビデオを同じ画面に設定しているため、マルチトレッド エラーが発生する可能性があります。ムービーごとに新しいサーフェスを定義して、画面上のサーフェスをブリットしてみてください

于 2016-06-17T09:33:13.267 に答える