我正在编写一个基于 libvlc 的小型自定义播放器。我已经使用了https://github.com/hartror/python-libvlc-bindings/blob/master/examples/gtkvlc.py中的大部分代码,这些代码就像我需要的那样播放单个曲目。
现在我想在之前完成后切换到另一首曲目。为此,我捕获回调“EventType.MediaPlayerEndReached”并在回调处理程序中编写代码:
<------>def endCallback(self,event):
<------><------>fname = vlc_controller.GetNextTrack()['url']
<------><------>self.w.set_title(fname)
<------><------>self.vlc.player.set_mrl(fname)
<------><------>self.w.set_title('after set_mrl')
<------><------>self.vlc.player.play()
<------><------>self.w.set_title('after play')
现在,当此代码被执行时,它会卡住self.vlc.player.set_mrl(fname)
并且不会继续前进,因此我看到 NO NEXT TRACK。
我使用 ( vlc.stop()
,vlc.set_media
而不是vlc.set_mrl
) 尝试了此代码的不同变体,但没有任何效果