1
我正在研究kivy框架(v1.10)。我正在嘗試創建一個簡單的模塊,它在循環中運行視頻,並在有人點擊屏幕時退出應用程序。注:我正在開發此應用程序的樹莓派,我檢查了其他(點擊事件相關)的例子,他們只是工作正常。曾經,我在kivy的獨立視頻應用程序中沒有成功,我嘗試了一種將視頻嵌入到網格佈局的骯髒技巧,然後綁定佈局的on_press事件與退出應用程序的call。這樣我才能抓住這個事件,但沒有幫助。 Kivy App documentation提到這是可以實現的,但事實並非如此。 下面是我正在處理的示例代碼。 PS:它甚至可以在機器上運行,並且不需要Raspberry PI來執行它。Kivy App運行視頻;點擊事件不起作用
#!/usr/bin/python3
# -*- coding: <UTF-8> -*-
import kivy
kivy.require('1.10.0')
from os.path import dirname, join
from kivy.app import App
from kivy.uix.videoplayer import Video
from kivy.uix.gridlayout import GridLayout
from kivy.logger import Logger
from kivy.clock import Clock
from kivy.properties import ObjectProperty
from kivy.uix.videoplayer import VideoPlayer
class VideoPlayerApp(App):
def build(self):
movie = Movie()
layout = GridLayout(cols=2)
layout.add_widget(movie.loadMovie(source='./media/SampleVideo_1280x720_1mb.mp4'))
self.bind(on_press = self.on_stop) #Not working :(
return layout
def on_stop(self):
return True
class Movie():
video = ObjectProperty(None)
def loadMovie(self, **kwargs):
filename = './media/SampleVideo_1280x720_1mb.mp4'
return VideoPlayer(source=filename, state='play', options={'eos': 'loop'})
def check(self):
Logger.info("film position:" + str(self.video.position))
if __name__ == '__main__':
VideoPlayerApp().run()
是否要啓用視頻播放器的控件(播放按鈕,停止按鈕等)?或者,您是否希望在應用程序的任何部分被觸摸時關閉該應用程序? – FJSevilla
是的,我希望在應用程序的任何部分被觸摸時關閉應用程序,並且我不需要按鈕(即使上述代碼可能正在顯示它們)。 – w1n5rx