章节知识点总揽
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文件,如下图所示:
上一篇:简单UX部件——Switch开关
下一篇:高级UX部件——Bubble气泡