vlc.py
を使用した最近の基本的なコードは次のevent_manager
とおりです。
import vlc
import time
import sys
finish = 0
def SongFinished(event):
global finish
print("\nEvent reports - finished")
finish = 1
def pos_callback(event, player):
sec = player.get_time() / 1000
m, s = divmod(sec, 60)
npos = event.u.new_position * 100
sys.stdout.write('\r%s %02d:%02d (%.2f%%)' % ('Position', m, s, npos))
sys.stdout.flush()
instance = vlc.Instance()
player = instance.media_player_new()
media = instance.media_new_path('vp1.mp3') #Your audio file here
player.set_media(media)
events = player.event_manager()
events.event_attach(vlc.EventType.MediaPlayerEndReached, SongFinished)
events.event_attach(vlc.EventType.MediaPlayerPositionChanged, pos_callback, player)
player.play()
while finish == 0:
time.sleep(0.5)
注: この方法で監視できるメディア プレーヤーのイベントは多数あります。
MediaPlayerMediaChanged
MediaPlayerNothingSpecial
MediaPlayerOpening
MediaPlayerBuffering
MediaPlayerPlaying
MediaPlayerPaused
MediaPlayerStopped
MediaPlayerForward
MediaPlayerBackward
MediaPlayerEndReached
MediaPlayerEncounteredError
MediaPlayerTimeChanged
MediaPlayerPositionChanged
MediaPlayerSeekableChanged
MediaPlayerPausableChanged
MediaPlayerTitleChanged
MediaPlayerSnapshotTaken
MediaPlayerLengthChanged
MediaPlayerVout
MediaPlayerScrambledChanged
MediaPlayerESAdded
MediaPlayerESDeleted
MediaPlayerESSelected
MediaPlayerCorked
MediaPlayerUncorked
MediaPlayerMuted
MediaPlayerUnmuted
MediaPlayerAudioVolume
MediaPlayerAudioDevice
現在の完全なリストについては、 https://github.com/oaubert/python-vlc/blob/master/generated/3.0/vlc.pyclass EventType
でコードを検索してください。