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


    章节知识点总揽

    4.9 Video视频

            本篇使用的视频如下:

            https://live.csdn.net/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文件最下面修改的具体代码如下:   

    1. if __name__ == '__main__':
    2. from kivy.app import App
    3. import sys
    4. #if len(sys.argv) != 2:
    5. #print("usage: %s file" % sys.argv[0])
    6. #sys.exit(1)
    7. class VideoApp(App):
    8. def build(self):
    9. self.v = Video(source='a.mp4', state='play')
    10. self.v.bind(state=self.replay)
    11. return self.v
    12. def replay(self, *args):
    13. if self.v.state == 'stop':
    14. self.v.state = 'play'
    15. 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”,具体代码如下:

    1. from kivy.app import App
    2. from kivy.uix.boxlayout import BoxLayout
    3. from kivy.uix.video import Video
    4. from kivy.uix.button import Button
    5. class VideoWidget(BoxLayout):
    6. def __init__(self,**kwargs):
    7. super().__init__(**kwargs)
    8. def on_position_change(instance,value):
    9. print('The postion in the video is',value)
    10. def on_duration_change(instance,value):
    11. print('The duration of the video is',value)
    12. video = Video(source='a.mp4', state='play')
    13. video.bind(position=on_position_change,duration=on_duration_change)
    14. self.add_widget(video)
    15. def replay(self,*args):
    16. if self.v.state=='stop':
    17. self.v.state='play'
    18. class VideoApp(App):
    19. def build(self):
    20. return VideoWidget()
    21. if __name__ == '__main__':
    22. from kivy.core.window import Window
    23. Window.clearcolor = [.8,.8,.8,1]
    24. VideoApp().run()

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

    6238f35643cc4544b45731a72855ccd2.png

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

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

            

     

  • 相关阅读:
    Windows系统提示“ping”不是内部或外部命令,也不是可运行的程序或批处理文件解决办法
    【原创】CentOS9安装Zabbix6.4
    有Mac或无Mac电脑通用的获取安卓公钥的方案
    Hive sqoop 数据迁移
    autohotkey 记录
    C++模板编程(15)---模板解析(Parsing Templates)
    图--深度优先搜索
    解放双手!一键助你快速发圈、批量加好友,好用哭了!
    Jenkins 的构建时执行时间问题
    电脑一键重装系统后如何打开事件查看器
  • 原文地址:https://blog.csdn.net/lstef/article/details/127684121