视频播放器

在 1.2.0 版本加入.

视频播放器控件可用于播放视频,并让用户控制播放/暂停、音量和播放位置。由于该控件由众多基础控件复杂组装而成,因此其自定义程度有限。

_images/videoplayer.jpg

注释

如果你希望在特定时间显示文本并持续一定时长,可以考虑使用注释(annotations)。注释文件的扩展名为“.jsa”。播放器会自动加载与之关联的注释文件(如果该文件存在的话)。

注解文件基于JSON格式,提供了一系列标签字典项。键和值必须与:class:`VideoPlayerAnnotation`中的某一项相匹配。例如,以下是一个简短的jsa文件版本,你可以在`examples/widgets/cityCC0.jsa`中找到它:

[
    {"start": 0, "duration": 2,
    "text": "This is an example of annotation"},
    {"start": 2, "duration": 2,
    "bgcolor": [0.5, 0.2, 0.4, 0.5],
    "text": "You can change the background color"}
]

对于我们的cityCC0.mpg示例,结果将是:

_images/videoplayer-annotation.jpg

如果你想试验注释文件,可以用以下方式测试:

python -m kivy.uix.videoplayer examples/widgets/cityCC0.mpg

全屏

视频播放器支持全屏播放视频,若通过双击视频激活了 VideoPlayer.allow_fullscreen 属性。默认情况下,如果视频尺寸小于窗口,则不会进行拉伸。

您可以通过向:class:`VideoPlayer`实例传递自定义选项来允许拉伸::

player = VideoPlayer(source='myvideo.avi', state='play',
    options={'fit_mode': 'contain'})

流结束行为

您可以通过向底层的:class:`~kivy.core.video.VideoBase`类传递`eos`(流结束)指令来指定视频播放完毕后的行为。`eos`可以是'stop'、'pause'或'loop',默认值为'stop'。例如,要循环播放视频,可以这样操作:

player = VideoPlayer(source='myvideo.avi', state='play',
    options={'eos': 'loop'})

备注

VideoBase 类的 eos 属性是一个字符串,用于指定流结束时的行为。此属性与 VideoPlayerVideo 类的 eos 属性不同,后者的 eos 属性仅是一个布尔值,表示文件是否已到达末尾。

class kivy.uix.videoplayer.VideoPlayer(**kwargs)[源代码]

基类:GridLayout

VideoPlayer 类。更多信息请参阅模块文档。

allow_fullscreen

默认情况下,您可以双击视频使其全屏显示。将此属性设置为False可阻止此行为。

allow_fullscreen 是一个 BooleanProperty,默认值为 True。

annotations

如果设置了该属性,它将用于读取注释框。

annotations 是一个 StringProperty,默认值为 ''。

duration

视频的时长。默认时长为-1,当视频加载完成后会设置为实际时长。

duration 是一个 NumericProperty,默认值为 -1。

fullscreen

切换到全屏视图。此操作需谨慎使用。激活时,该部件会从父级中移除自身,清空窗口中的所有子部件,并将自身添加到窗口中。当取消全屏时,所有先前的子部件将被恢复,该部件也会恢复到其先前的父级。

警告

重新添加操作不关心其子项在父项中的索引位置。

fullscreen 是一个 BooleanProperty,默认值为 False。

image_loading

视频加载时使用的图像文件名。

image_loading 是一个 StringProperty,默认值为 'data/images/image-loading.zip'。

image_overlay_play

用于在视频尚未开始播放时显示“播放”覆盖层的图像文件名。

image_overlay_play 是一个 StringProperty,默认值为 'atlas://data/images/defaulttheme/player-play-overlay'。

image_pause

用于“暂停”按钮的图像文件名。

image_pause 是一个 StringProperty,默认值为 'atlas://data/images/defaulttheme/media-playback-pause'。

image_play

用于“播放”按钮的图像文件名。

image_play 是一个 StringProperty,默认值为 'atlas://data/images/defaulttheme/media-playback-start'。

image_stop

用于“停止”按钮的图像文件名。

image_stop 是一个 StringProperty,默认值为 'atlas://data/images/defaulttheme/media-playback-stop'。

image_volumehigh

音量高时使用的音量图标文件名。

image_volumehigh 是一个 StringProperty,默认值为 'atlas://data/images/defaulttheme/audio-volume-high'。

image_volumelow

音量较低时使用的音量图标文件名。

image_volumelow 是一个 StringProperty,默认值为 'atlas://data/images/defaulttheme/audio-volume-low'。

image_volumemedium

音量处于中等水平时,音量图标所使用的图像文件名。

image_volumemedium 是一个 StringProperty,默认值为 'atlas://data/images/defaulttheme/audio-volume-medium'。

image_volumemuted

音量静音时使用的音量图标文件名。

image_volumemuted 是一个 StringProperty,默认值为 'atlas://data/images/defaulttheme/audio-volume-muted'。

on_touch_down(touch)[源代码]

接收触摸按下事件。

参数:
touchMotionEvent

收到触摸。该触摸位于父坐标中。关于坐标系统的讨论,请参阅 relativelayout

返回:

bool 如果为 True,触摸事件的派发将停止。如果为 False,事件将继续派发给控件树中的其余部分。

options

可以通过此属性向 Video 实例传递可选参数。

options 是一个 DictProperty,默认值为 {}。

play

自 1.4.0 版本弃用: 请使用 state 代替。

布尔值,指示视频是否正在播放。您可以通过设置此属性来启动/停止视频::

# start playing the video at creation
video = VideoPlayer(source='movie.mkv', play=True)

# create the video, and start later
video = VideoPlayer(source='movie.mkv')
# and later
video.play = True

play 是一个 BooleanProperty,默认值为 False。

position

视频在0和:attr:`duration`之间的位置。位置默认为-1,并在视频加载时设置为实际位置。

position 是一个 NumericProperty,默认值为 -1。

seek(percent, precise=True)[源代码]
将位置改为百分比(严格来说,是比例)。

持续时间的。

参数:
percent:浮点数或整数

作为总时长比例的要跳转位置,必须在0-1之间。

precise:布尔值,默认为 True

精确跳转较慢,但会定位到请求的确切百分比位置。

警告

在视频加载完成之前调用seek()方法不会产生任何效果。

在 1.2.0 版本加入.

在 1.10.1 版本发生变更: precise 关键字参数已被添加。

source

视频源以读取。

source 是一个 StringProperty,默认值为 ''。

在 1.4.0 版本发生变更.

state

字符串,指示视频是播放、暂停还是停止:

# start playing the video at creation
video = VideoPlayer(source='movie.mkv', state='play')

# create the video, and start later
video = VideoPlayer(source='movie.mkv')
# and later
video.state = 'play'

state 是一个 OptionProperty,默认值为 'stop'。

thumbnail

要显示的视频缩略图。如果为None,VideoPlayer将尝试从 source + '.png' 中查找缩略图。

thumbnail 是一个 StringProperty,默认值为 ''。

在 1.4.0 版本发生变更.

volume

视频音量范围在0-1之间。1表示最大音量,0表示静音。

volume 是一个 NumericProperty,默认值为 1。

class kivy.uix.videoplayer.VideoPlayerAnnotation(**kwargs)[源代码]

基类:Label

用于创建注释标签的注解类。

附加键可用:

  • bgcolor: [r, g, b, a] - 文本框的背景颜色

  • bgsource: 'filename' - 用于背景文本框的背景图像

  • border: (n, e, s, w) - 用于背景图像的边框

duration

注释的持续时间。

duration 是一个 NumericProperty,默认值为 1。

start

注释的开始时间。

start 是一个 NumericProperty,默认值为 0。