目录
- 视频播放器
- 注释
- 全屏
- 流结束行为
VideoPlayerVideoPlayer.allow_fullscreenVideoPlayer.annotationsVideoPlayer.durationVideoPlayer.fullscreenVideoPlayer.image_loadingVideoPlayer.image_overlay_playVideoPlayer.image_pauseVideoPlayer.image_playVideoPlayer.image_stopVideoPlayer.image_volumehighVideoPlayer.image_volumelowVideoPlayer.image_volumemediumVideoPlayer.image_volumemutedVideoPlayer.on_touch_down()VideoPlayer.optionsVideoPlayer.playVideoPlayer.positionVideoPlayer.seek()VideoPlayer.sourceVideoPlayer.stateVideoPlayer.thumbnailVideoPlayer.volume
VideoPlayerAnnotation
视频播放器¶
在 1.2.0 版本加入.
视频播放器控件可用于播放视频,并让用户控制播放/暂停、音量和播放位置。由于该控件由众多基础控件复杂组装而成,因此其自定义程度有限。
注释¶
如果你希望在特定时间显示文本并持续一定时长,可以考虑使用注释(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示例,结果将是:
如果你想试验注释文件,可以用以下方式测试:
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 属性是一个字符串,用于指定流结束时的行为。此属性与 VideoPlayer 和 Video 类的 eos 属性不同,后者的 eos 属性仅是一个布尔值,表示文件是否已到达末尾。
- class kivy.uix.videoplayer.VideoPlayer(**kwargs)[源代码]¶
基类:
GridLayoutVideoPlayer 类。更多信息请参阅模块文档。
- 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)[源代码]¶
接收触摸按下事件。
- 参数:
- touch:
MotionEvent类 收到触摸。该触摸位于父坐标中。关于坐标系统的讨论,请参阅
relativelayout。
- touch:
- 返回:
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。