Pygame - 播放电影



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

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

首先,按照以下语法获取 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()
广告