捐助郴维网
感谢您对郴维网的支持,你的支持将是郴维网持续发展的动力!
二维码
×
当前位置:郴维网 >Pygame > 正文
3 2018.02

movie | Pygame中文文档

点击次数:725 更新时间:2018-2-3 21:38:39  【打印此页

pygame.movie

Pygame 中播放 MPEG 视频的模块。




pygame.movie.Movie  ——  载入一个 MPEG 视频文件。

注意:在由 NT 衍生出的 Windows 版本(例如 XT)中,默认的 SDL directx 视频驱动存在一定问题。对用于播放 MPEG 视频的 pygame.movie pygame 模块,请使用 windib 驱动来替代。在导入 pygame 之前,需要将 SDL_VIDEODRIVER 环境变量设置成 'windib',使得 windib 处于可用状态。(例子请参考 pygame.examples.movieplayer.main())

Pygame 可以播放视频和基于MPEG-1编码的视频文件中的音频。视频播放在后台线程中进行,这样使得播放更易于控制。

视频中的音频必须完全控制声音系统。这意味着在视频中的声音播放之前用于载入和运行声音模块的 pygame.mixer 模块必须被还原。一般的处理方式是在视频开始之前调用 pygame.mixer.quit() 方法。在视频结束后,调音器可以被重新初始化。

视频叠加面被绘制在显示器窗口最顶部。在显示器窗口中绘制正常的视频图像,创建一个屏幕外的 Surface 对象并将其指向对应视频。则每一帧图像通过 Surface 绘制到屏幕上。

通过使用 ffmpeg 视频转换程序(http://ffmpeg.org/)可以将视频转换成 .mpg 格式(MPEG-1 video, MPEG-1 Audio Layer III (MP3) sound):

1.  ffmpeg -i -vcodec mpeg1video -acodec libmp3lame -intra

复制代码



class pygame.movie.Movie

载入一个 MPEG 视频文件。

Movie(filename) -> Movie
Movie(object) -> Movie

方法

 

·         pygame.movie.Movie.play()  ——  开始播放视频

·         pygame.movie.Movie.stop()  ——  停止播放视频

·         pygame.movie.Movie.pause()  ——  暂停/继续播放视频

·         pygame.movie.Movie.skip()  ——  快进视频播放的位置

·         pygame.movie.Movie.rewind()  ——  重新播放视频

·         pygame.movie.Movie.render_frame()  ——  设置当前视频帧数

·         pygame.movie.Movie.get_frame()  ——  获取当前视频帧数

·         pygame.movie.Movie.get_time()  ——  获取当前视频的播放时间

·         pygame.movie.Movie.get_busy()  ——  检查当前是否正在播放视频

·         pygame.movie.Movie.get_length()  ——  获取视频的总时长(以秒为单位)

·         pygame.movie.Movie.get_size()  ——  获取视频的分辨率

·         pygame.movie.Movie.has_video()  ——  检查视频文件里是否包含影像

·         pygame.movie.Movie.has_audio()  ——  检查视频文件里是否包含音频

·         pygame.movie.Movie.set_volume()  ——  设置音量

·         pygame.movie.Movie.set_display()  ——  设置视频的目标 Surface 对象


从一个文件或者一个 python 文件对象内载入一个新的 MPEG 视频流。视频对象的控制类似于 pygame.mixer 控制音频对象。

视频对象有一个对应的目标 Surface 对象,视频流通过后台线程被传输到该 Surface 对象中。如果对应的 Surface 对象是窗口 Surface 对象,将会尝试使用硬件加速功能。默认情况下,目标对象即窗口 Surface 对象。


方法详解

pygame.movie.Movie.play()

开始播放视频。

play(loops=0) -> None

如果音频和影像均可用,则开始播放音频和影像。

loops 参数控制视频将会重播多少次,如果 loops=-1,则视频将会无限重播。


pygame.movie.Movie.stop()

停止播放视频。

stop() -> None

影像和音频的播放将会在他们当前的位置上结束。


pygame.movie.Movie.pause()

暂停/继续播放视频。

pause() -> None

暂停/继续视频播放。


pygame.movie.Movie.skip()

快进视频播放的位置。

skip(seconds) -> None

以秒为单位快进视频播放的时间点。在视频(设置了播放起始时间)播放之前,该方法可以被调用。该方法仅仅可以向前快进而不能向后倒退。

seconds 参数是一个单精度浮点数。


pygame.movie.Movie.rewind()

重新播放视频。

rewind() -> None

设置视频的起始播放位置。如果视频播放结束了,将会自动重新开始播放。

如果视频不能被重播,此方法会产生一个 ValueError 错误。如果重播失败,视频对象会被认为是无效的。


pygame.movie.Movie.render_frame()

设置当前视频帧数。

render_frame(frame_number) -> frame_number

此方法需要传递一个整型帧数作为参数。

此方法会尝试把提供的帧数从视频对象传递给对应的 Surface 对象。

此方法会返回设置完成后的实际帧数。


pygame.movie.Movie.get_frame()

获取当前视频帧数。

get_frame() -> frame_number

返回当前视频的整形帧数。


pygame.movie.Movie.get_time()

获取当前视频的播放时间。

get_time() -> seconds

返回当前的播放时间(以秒为单位的单精度浮点数)。

注意:这个方法目前是坏的,会一直返回 0.0 (这是作者说的,不是我说的  )。


pygame.movie.Movie.get_busy()

检查当前是否正在播放视频。

get_busy() -> bool

返回一个布尔值表示视频是否正在被播放。


pygame.movie.Movie.get_length()

获取视频的总时长(以秒为单位)。

get_length() -> seconds

返回视频的总时长(以秒为单位的单精度浮点数)。


pygame.movie.Movie.get_size()

获取视频的分辨率。

get_size() -> (width, height)

视频可以适应任何 Surface 对象的规格,但是此方法返回的是视频的自然规格(即原规格,在视频制作时规定的规格)。


pygame.movie.Movie.has_video()

检查视频文件里是否包含影像。

has_video() -> bool

当视频文件里包含影像流时返回 True。


pygame.movie.Movie.has_audio()

检查视频文件里是否包含音频。

has_audio() -> bool

当视频文件里包含音频流时返回 True。


pygame.movie.Movie.set_volume()

设置音量。

set_volume(value) -> None

value 参数范围为 0.0~1.0。

如果音量设置为 0,则视频的音频将不会被解码。


pygame.movie.Movie.set_display()

设置视频的目标 Surface 对象。

set_display(Surface, rect=None) -> None

设置视频的 Surface 对象。

你也可以传递一个用于确定位置的矩形参数,则视频窗口将会移动并调整,直至可以覆盖整个矩形范围。

如果目标 Surface 对象传入 None,则禁止视频解码。

Tips
郴维网为您提供各类专业服务:
软件开发,电脑配件销售,WIFI路由器销售,上门电脑维修,上门安装系统,系统安装,软、硬件安装,电脑除尘清灰,显示器维修,WIFI安装调试,服务器维护,数据恢复,密码破解,网络布线,网络检修,打印机维修,打印机加碳粉,苹果电脑安装系统,苹果电脑安装双系统,监控安装维护,电脑外包,笔记本电脑维修,餐饮、美容行业软件安装 等。。。。。。
点击次数:725 更新时间:2018-2-3 21:38:39  【打印此页
关键词推荐:郴州电脑城 郴州电脑维修公司 维修电脑公司 郴州软件开发 上门电脑维修 上门安装系统 笔记本电脑维修 郴州打印机维修 打印机加碳粉 电脑安装双系统 苹果电脑双系统 液晶显示器维修 联想笔记本维修 联想笔记本维修电话 戴尔笔记本维修电话 郴州戴尔笔记本维修 戴尔笔记本郴州维修点 华硕笔记本维修点 郴州华硕笔记本维修 郴州笔记本上网维修