我的应用程序有一个按钮>;点击按钮将开始播放一个视频>;视频结束后,我要导航到最终屏幕。在
#!/usr/bin/kivy
import kivy
kivy.require('1.7.2')
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button
import webbrowser
from kivy.uix.videoplayer import VideoPlayer
import time
Builder.load_string('''
<MenuScreen>:
GridLayout:
padding: 5
spacing: 5
cols: 1
padding: root.width*0.1
Button:
background_normal: ''
background_color:(0.862, 0.078, 0.235, 0.9)
text: 'PLAY'
font_size: '20sp'
on_press: root.manager.current='vdo'
on_press: root.val1()
<Vdo>:
GridLayout:
cols: 1
VideoPlayer:
id: testid
state: 'stop'
source: 'http://techslides.com/demos/sample-videos/small.webm'
fullscreen: True
image_play: 'black.png'
image_stop: 'black.png'
image_pause: 'black.png'
image_volumehigh: 'black.png'
image_volumelow: 'black.png'
image_volumemedium: 'black.png'
image_volumemuted: 'black.png'
<Final>:
GridLayout:
cols: 1
Label:
text: 'over'
''')
class MenuScreen(Screen):
def val1(self):
print "1 is executed"
vdo.ids.testid.state='play'
sm.current='final'
class Vdo(Screen):
def val2(self):
print "i am executed"
class Final(Screen):
def val3(self):
print "i am executed"
sm = ScreenManager()
menu = MenuScreen(name='menu')
sm.add_widget(menu)
vdo = Vdo(name='vdo')
sm.add_widget(vdo)
final = Final(name='final')
sm.add_widget(final)
class MainApp(App):
def build(self):
return sm
if __name__ == '__main__':
MainApp().run()
视频结束后,我的代码不会移动到最终屏幕。我试着在视频播放后给予时间睡眠,但在这段时间内,视频将在后台播放。在
我会尝试将一个函数绑定到VideoPlayer state属性,这样当fire时,您将检查position==duration(结束)并移动到下一个屏幕
在python代码中:
^{pr2}$我希望这会有帮助
相关问题 更多 >
编程相关推荐