xmbc 播放器 onPlayBackEnded 未被调用

Dev*_*xon 0 python kodi

我遇到一个问题,我已经实现了一个类来在 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')
Run Code Online (Sandbox Code Playgroud)

我实施了什么错误吗?

Rom*_*nko 5

“player.play”不是阻塞调用,这意味着您的脚本将继续运行到最后,然后您的player实例超出范围并被垃圾收集。

您需要创建一些长时间运行的循环来防止脚本退出。像这样的东西:

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

如果你需要你的脚本永远运行(直到 Kodi 退出)那么你将需要这样的东西:

monitor = xbmc.Monitor()
monitor.waitForAbort()
Run Code Online (Sandbox Code Playgroud)

monitor.waitForAbort()将阻止您的脚本并防止其在 Kodi 运行时退出。