《Python+Kivy(App开发)从入门到实践》自学笔记:简单UX部件——Video视频

章节知识点总揽

4.9 Video视频

        本篇使用的视频如下:

        https://live.youkuaiyun.com/v/251461

        Video小部件用于加载视频文件流,在不同的平台上支持的格式也各不相同。例如:Pygame提供的视频程序仅在Linux和OS X系统上支持MPEGI格式,GStreamer框架可以读取很多的视频容器和编解码器。例如:MKV、OGV、AVI、MOV和FLV等。由于视频加载是异步的,所以在加载视频之前许多属性是不可以使用的。

   

        注意:

        按照书本操作未能实现视频播放,经过借鉴网友方法及修改kivy.uix.video模块中运行测试部分,最终实现该模块的使用。(只是因为没有安装ffpyplayer播放器!!)具体过程如下:

        1.打开cmd命令,输入'pip install ffpyplayer',安装python播放器;

        2.将kivy.uix.video复制到测试目录中,将a,mp4文件放置在测试目录中,kivy.uix.video文件最下面修改的具体代码如下:   


if __name__ == '__main__':
    from kivy.app import App
    import sys

    #if len(sys.argv) != 2:
        #print("usage: %s file" % sys.argv[0])
        #sys.exit(1)

    class VideoApp(App):
        def build(self):
            self.v = Video(source='a.mp4', state='play')
            self.v.bind(state=self.replay)
            return self.v

        def replay(self, *args):
            if self.v.state == 'stop':
                self.v.state = 'play'

    VideoApp().run()

 

        关于Video视频的常用属性及说明如下:

Video视频常用属性

属性说明
state状态,可设置为play、pause或stop(默认)
duration

视频的时长,持续时间默认为-1

position视频的位置,值为在0-duration之间,默认为-1
eos视频是否已经完成播放,默认为False
loaded是否已加载视频并准备好播放,默认为False
options用于创建视频核心对象的选项,默认为{}
unload卸载视频,播放将停止
volume视频的音量,范围0-1,1表示满音量(默认),0表示静音

        实例:添加Video视频

        新建一个main.py文件,在其中引入Video类,并通过source属性指定需要播放文件的路径,设置状态为“play”,具体代码如下:

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.video import Video
from kivy.uix.button import Button

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

        def on_position_change(instance,value):
            print('The postion in the video is',value)

        def on_duration_change(instance,value):
            print('The duration of the video is',value)
            

        
        video = Video(source='a.mp4', state='play')
        video.bind(position=on_position_change,duration=on_duration_change)
        self.add_widget(video)
    def replay(self,*args):
        if self.v.state=='stop':
            self.v.state='play'
        

class VideoApp(App):
    def build(self):
        return VideoWidget()

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

        运行main.py文件,如下图所示:

6238f35643cc4544b45731a72855ccd2.png

上一篇:简单UX部件——Switch开关

下一篇:高级UX部件——Bubble气泡

        

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静候光阴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值