2023年9月2日 星期六

Kivy UIX篇 widget篇 Video類 method篇 講解

若尚未看過Kivy UIX篇 widget篇 Video類 attribute篇 講解,建議看完之後對Video有一定了解在看這篇喔。

根據官網Video類繼承自kivy.uix.image.Image,因此Video的method皆來自於此,詳細的可以參考Kivy UIX篇 widget篇 Image類 method篇 講解與其父類的介紹,基本上是通用的。

Video類專用method有以下幾個:

1.seek(percent, precise=True):當呼叫seek方法時,可以使影片跳轉至我們指定的百分比(注意:當影片播放完畢時,呼叫seek方法將無任何效果)

在main.py中寫上此段程式碼:

from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.properties import ObjectProperty


class MyLayout(GridLayout):
    a1 = ObjectProperty()
    a2 = ObjectProperty()

    def btn1(self):
        self.a1.seek(0.5)


class Myapp(App):

    def build(self):
        return MyLayout()


if __name__ == '__main__':
    Myapp().run()

在my.kv中寫上此段程式碼:

<MyLayout>:

    a1: b1
    a2: b2
    rows:2

    Video:
        id: b1
        source: 'example.mp4'
        play: True

    Button:
        id: b2
        text:'A1'
        on_press: root.btn1()

執行結果如下:

2.unload():卸載影片,可以使影片停止

首先在main.py中寫下此程式碼:

from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.properties import ObjectProperty


class MyLayout(GridLayout):
    a1 = ObjectProperty()
    a2 = ObjectProperty()

    def btn1(self):
        self.a1.unload()


class Myapp(App):

    def build(self):
        return MyLayout()


if __name__ == '__main__':
    Myapp().run()

函數btn1的內容為:a1物件呼叫unload方法

在my.kv中寫上此段程式碼:

<MyLayout>:

    a1: b1
    a2: b2
    rows:2

    Video:
        id: b1
        source: 'example.mp4'
        state: 'play'

    Button:
        id: b2
        text:'A1'
        on_press: root.btn1()

執行結果如下:


沒有留言:

張貼留言

精選文章

Kivy UIX篇 widget篇 TabbedPanel類 event篇 講解