章节知识点总览

5.8 VideoPlayer视频播放

        可以用于播放视频,并实现用户自主控制播放视频、暂停播放、音量调节和窗口位置移动。由于众多基础窗口小部件的复杂组装,因此无法对窗口部件进行太多自定义。

注意:跟之前“简单UX部件——Video视频”中讲到的一样,

必须使用"pip install ffpyplayer"命令安装播放器!!!

5.8.1 使用方法

        可以使用options属性来对其进行一些快捷设置,例如:通过设置双击视频激活全屏播放,在默认情况下,如果视频小于窗口,则不会拉伸。关键代码如下:

options={'allow_stretch':True,'eos':'loop'}

        也可以通过eos属性来控制视频播放结束后的处理方式,可设置为"stop"、"pause"或"loop"。

        实例:VideoPlayer视频播放的使用方法

       

        新建一个videoplayer.py文件,在其中添加一个VideoPlayer,具体代码如下:

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.videoplayer import VideoPlayer


class VideoPlayerTest(BoxLayout):
    def __init__(self,**kwargs):
        super().__init__(**kwargs)

        player =  VideoPlayer(source='a.mp4',state='play',options={'allow_stretch':True,'eos':'loop'})
        self.add_widget(player)


class VideoPlayerApp(App):
    def build(self):
        return VideoPlayerTest()


if __name__ == '__main__':
    from kivy.core.window import Window
    Window.clearcolor = [.8,.8,.8,1]
    VideoPlayerApp().run()

        运行videoplayer.py,结果如下图:

python写PDF播放器 python 播放器播放视频_音视频

5.8.2 常用属性

        VideoPlayer常用属性

属性

说明

source

视频路径,默认为空

state

视频状态,可设置为"play"、"pause"、"stop"方法,默认为"stop"

thumbnail

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

volume

视频的音量范围是0-1,1表示满音量(默认),0表示静音

allow_fullscreen

是否允许双击来全屏显示视频,默认为True

annotations

用于读取注释,默认为空

duration

视频的时长,默认为-1

position

视频的位置,在0到duration之间,默认为-1

fullscreen

是否切换到全屏视图,会清除所有子级,谨慎使用,默认为False

image_loading

加载视频时使用的图片文件名,默认为“kivy\data\images\image-loading.gif”

image_overlay_play

设置在视频尚未开始播放时显示“播放”覆盖图,默认为“player-play-overlay.png”

image_pause

设置“播放”按钮的图像文件名,默认为“media-playback-pause.png”

image_play

设置“播放”按钮的图像文件名,默认为“media-playback-start.png”

image_stop

设置“停止”按钮的图像文件名,默认为“media-playback-stop.png”

image_volumehigh

设置音量低时一音量图标的图像文件名,默认为“audio-volume-low.png”

image_volumedium

设置音量中等大小时,音量图标的图像文件名,默认为“audio-volume-medium.png”

image_volumeuted

设置静音后音量图标的图像文件名,默认为“audio-volume-muted.png”

options

使用此属性将可选参数传递给实例,默认为{}

start

注释的开始时间,默认为0

seek(percent,percision=True)

将位置更改为持续时间的百分比,视频加载之前调用无效