У меня есть Raspberry Pi 3b, который я использую для воспроизведения музыки.Когда кнопка (GPIO) нажата, я хочу воспроизвести список песен.Я делаю это с помощью плеера vlc media list.Я создаю список мультимедиа, собирая N случайных mp3-файлов из каталога.
Например:
i=vlc.Instance()
l=i.media_list_new()
l.insert_media(i.media_new(...)) # this loops and grabs random mp3s
p=i.media_list_player_new()
p.set_media_list(l)
p.play()
Другой сигнал GPIO вызовет p.stop ().На этом этапе я хочу знать, какие песни из списка СМИ были воспроизведены.Таким образом, я могу отслеживать их и не воспроизводить снова при следующем нажатии кнопки «Воспроизведение», но неиспользованные треки в списке все еще должны иметь право на воспроизведение.
Пока что я не вижу никакого способаполучить какую-либо информацию от проигрывателя списка мультимедиа о том, какой элемент в списке он включен или каким-либо другим способом узнать, что было воспроизведено из списка.
Я попробовал альтернативный вариант ручного циклического просмотра списка песен и использованияобычный игрок (не игрок списка), но когда я делаю это, я должен сделать цикл while True
, чтобы заставить игрока ждать окончания одной песни, прежде чем играть следующую.Похоже, этот цикл также по какой-то причине блокирует мой обработчик событий GPIO, и нажатие кнопки STOP остается незамеченным (для остановки необходимо отменить сценарий).