2017-06-24 2 views
0

私は、onPlayBackEndedが終了したときに聴くためのクラスを実装しましたが、起動していないようです。これは私のコードです:xmbc Player onPlayBackEndedが呼び出されていない

http://mirrors.kodi.tv/docs/python-docs/13.0-gotham/xbmc.html#Player-onPlayBackEnded

class BWPlayer(xbmc.Player) : 

    def __init__ (self): 
     xbmc.Player.__init__(self) 

    def onPlayBackStarted(self): 
     print("Strted") 

    def onPlayBackEnded(self): 

     xbmcgui.Dialog().ok(addonname, "Done Playing") 

    def onPlayBackStopped(self): 
     print("Strted") 

    def onPlayBackPaused(self): 
     print("Strted") 

    def onPlayBackResumed(self): 
     print("Strted") 

player  = BWPlayer() 
player.play(item='file.mp4') 

私が何か間違ったことを実装しましたか?

答えて

2

'player.play'はブロッキングコールではありません。つまり、スクリプトが最後まで実行され続けてから、playerインスタンスが有効範囲外になり、ガベージコレクションされます。

あなたのスクリプトが終了しないようにするには、長い実行ループのkineを作成する必要があります。このような何か:

player.play(item='file.mp4') 
xbmc.sleep(500) # Wait until playback starts 
while player.isPlaying(): 
    xbmc.sleep(500) 

あなたは(コディが終了するまで)永久に実行するスクリプトが必要な場合、あなたはこのようなものが必要になります。スクリプトをブロックしている間から出るのを防ぐことができます

monitor = xbmc.Monitor() 
monitor.waitForAbort() 

monitor.waitForAbort()をコディが走っている。

+0

ありがとう!見つけられない1つの質問は、xbmc.sleepミリ秒、秒、または分ですか? –

+0

最小持続時間が100ミリ秒のミリ秒。 –

関連する問題