在下面的代码中
# python-vlc
from vlc import Media, MediaPlayer, EventType, Event
class MusicPlayer:
def __init__(self) -> None:
self.items = ["/list/of/path/to/audio/file"]
self.index = 0
self.player: MediaPlayer = MediaPlayer(self.items[self.index])
event_manager = self.player.event_manager()
event_manager.event_attach(EventType.MediaPlayerEndReached, self.handleLoop)
def change(self):
self.player.stop()
self.player.set_media(Media(self.items[self.index]))
self.player.play()
def play(self):
self.player.play()
def handleLoop(self, event):
self.index += 1
print('Play Ended')
self.change(self.index)
当媒体播放结束时,handleLoop 应该被触发并且它确实触发了但是当它被触发时只有这两行被执行,
self.index += 1
和 print('Play Ended')
。 self.change(self.index) 方法不会被执行。我什至没有得到任何错误。我尝试附加错误事件,但仍然一无所获。
有人知道解决方案吗?