Reputation: 93
On a Raspberry Pi using a Python program, I'm using a Media List Player to play a set of audio files. The specific code but I use to set it up is:
player = vlc.Instance('--no-xlib --quiet ') # no-xlib for linux and quiet don't complain
media_player = vlc.MediaListPlayer() # creating a media player object
media_list = player.media_list_new() # creating a new media list
media_player.set_media_list(media_list) # setting media list to the media player
new = player.media_player_new() # new media player instance
media_player.set_media_player(new) # setting media player to it
media_events = new.event_manager() # setting event handler
# setting up events
media_events.event_attach(vlc.EventType.MediaPlayerMediaChanged, vlc_SongStarted)
media_events.event_attach(vlc.EventType.MediaPlayerEndReached, vlc_SongFinished)
In the MediaPlayerEndReached event I'm trying to insert a pause to vlc (not the actual program) - I'm trying to avoid using "time.sleep()". Basically, I'm trying to pause vlc for 3 seconds between tracks. I tried:
media_player.audio_set_delay(3000)
That results in:
AttributeError: 'MediaListPlayer' object has no attribute 'audio_set_delay'
Makes sense, so then I tried to get to the actual media player and tried:
media_player.get_media_player.audio_set_delay(3000)
That results in:
AttributeError: 'function' object has no attribute 'audio_set_delay'
I'm stumped. Is there a way to do a timed pause for vlc in Python without having the pause the entire python program?
Upvotes: 0
Views: 517
Reputation: 5992
Try adding a pair of round brackets to get_media_player
in media_player.get_media_player.audio_set_delay(3000)
, so that it becomes media_player.get_media_player().audio_set_delay(3000)
;-) !
Upvotes: 1