【发布时间】:2017-07-19 22:55:46
【问题描述】:
我正在开发 kivy 框架 (v1.10)。我正在尝试创建一个简单的模块,该模块循环运行视频并在有人点击屏幕后退出应用程序。注意:我正在为 Raspberry PI 开发此应用程序,并检查了其他(与点击事件相关的)示例,它们运行良好。有一次,我在 kivy 的独立视频应用程序中失败了,我尝试了一个肮脏的技巧,将视频嵌入到网格布局中,然后将布局的 on_press 事件与退出应用程序的call 绑定。这样我就可以捕捉到事件,但没有帮助。 Kivy App documentation 提到这是可以实现的,但事实并非如此。 下面是我正在处理的示例代码。 PS:它甚至可以在机器上运行,并且不需要树莓派来执行它。
#!/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()
【问题讨论】:
-
您要启用视频播放器的控件(播放按钮、停止按钮等)吗?或者您希望应用程序的任何部分被触摸时关闭应用程序?
-
是的,我希望在应用程序的任何部分被触摸时关闭应用程序并且我不想要按钮(即使上面的代码可能正在显示它们)。
标签: python kivy kivy-language