Pygame - 播放影片

Pygame 在其最新版本中已停止支持视频文件。 但是,在 Python 2.7 发行版的早期版本中,它仍然可以使用。 对于本节,使用了 Pygame 1.9.2 和 Python 2.7.18。

pygame.movie 模块支持播放来自基本编码 MPEG-1 视频文件的视频和音频。 影片播放发生在后台线程中,这使得播放易于管理。 如果要播放影片的声音,则必须取消初始化用于加载和播放声音模块的 pygame.mixerpygame 模块。

首先通过以下语法获取 Movie 对象 −

movie = pygame.movie.Movie('sample.mpg')

Movie 类提供了以下方法来控制播放。

pygame.movie.Movie.play 开始播放影片
pygame.movie.Movie.stop 停止影片播放
pygame.movie.Movie.pause 暂停和恢复播放
pygame.movie.Movie.skip 前进影片播放位置
pygame.movie.Movie.rewind 重启影片播放
pygame.movie.Movie.get_time 获取当前视频播放时间
pygame.movie.Movie.get_length 影片的总长度,以秒为单位
pygame.movie.Movie.get_size 获取视频的分辨率
pygame.movie.Movie.has_audio 检查影片文件是否包含音频
pygame.movie.Movie.set_volume 设置音频播放音量
pygame.movie.Movie.set_display 设置视频目标Surface

以下代码在 Pygame 显示窗口中播放一个 .MPG 文件。 −

import pygame

FPS = 60
pygame.init()
clock = pygame.time.Clock()
movie = pygame.movie.Movie('sample_640x360.mpg')
screen = pygame.display.set_mode(movie.get_size())
movie_screen = pygame.Surface(movie.get_size()).convert()

movie.set_display(movie_screen)
movie.play()

playing = True
while playing:
   for event in pygame.event.get():
      if event.type == pygame.QUIT:
         movie.stop()
         playing = False

   screen.blit(movie_screen,(0,0))
   pygame.display.update()
   clock.tick(FPS)
pygame.quit()