2017-10-06 140 views
2

我想停止點擊事件中的此kivy視頻(默認播放)。我在樹莓派上運行它。這是我的kv和python代碼。停止kivy視頻

<VideoScreen>: 
name: 'Video' 
BoxLayout: 
    Video: 
     id: 'video1' 
     source: './media/Sequence_#1.mp4' 
     state: root.current_video_state 
     volume: 1 
     options: {'eos': 'loop'} 
     allow_stretch: True 

的視頻在循環播放並且自來水切換到新的屏幕「登錄」但視頻沒有停止做,並且仍然在循環播放(我想新的畫面加載後停止此)。使用屏幕管理器連接到視頻屏幕還有許多其他屏幕屏幕。假設加載屏幕正常工作。忽略縮進。

class VideoScreen(Screen): 
    current_video_state = StringProperty() 
    def __init__(self, **kwargs): 
     super(VideoScreen, self).__init__(**kwargs) 
     self.bind(on_touch_down = self.on_stop) 
     self.current_video_state = self.get_set_current_video_state() 

    def get_set_current_video_state(self, *args): 
     while(args): 
      print('arg', args[0]) 
      if args[0] == 'pause': 
      return 'pause' 
     return 'play' 

    def on_stop(self, *args): 
     self.state = 'pause' 
     self.get_set_current_video_state('pause') 
     self.parent.current = 'Login' 
+0

視頻小工具在樹莓派上適合您嗎?我無法讓它工作,我認爲很多其他人也有同樣的問題。我們使用了一種解決方法,如https://gist.github.com/natcl/005dc4c6434ed7b5a59a。你有沒有做任何特定的事情使它在樹莓派上工作? – PalimPalim

回答

1
Video: 
    # ... 
    state: root.current_video_state 

這部分結合視頻控件的狀態屬性current_video_state:每個current_video_state變化時,視頻的狀態將被改變一樣。您應該在(觸摸)事件中更改此變量以暫停視頻:

def on_stop(self, *args): 
    self.current_video_state = 'pause' # this will change video state to 'pause' 
    self.parent.current = 'Login'