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()
廣告