Дождитесь завершения воспроизведения песни за пределами python

#python #linux #mp3 #subprocess #python-3.4

#python #linux #mp3 #подпроцесс #python-3.4

Вопрос:

Я пытаюсь дождаться завершения песни, чтобы воспроизвести следующую песню.

Я использую python 3.4 в Windows, но пытаюсь использовать его в Linux ( raspberry pi ).

Я использовал команду subprocess.call([PLAYER, SONG]) для открытия файла mp3. Он воспроизводится в vlc, а затем останавливается. Я знаю, что я ничего не включил в программу, чтобы сообщить python о ее завершении.

Вот тут-то вы, ребята, и вступаете. Я хочу найти команду, которая будет ждать, пока песня не закончится, и когда песня будет завершена, остальная часть кода будет обработана.

Я хотел бы, чтобы команда могла использоваться в операционной системе Linux, и я стараюсь не устанавливать никаких модулей.

Если модули определенно необходимы, я их установлю.

Ответ №1:

Вы можете использовать привязки VLC python для получения другой информации о проигрывателе VLC.

Существуют разные методы, которые могут предоставить вам различную информацию. Вы можете достичь своего решения, используя метод get_state(self), он предоставляет информацию о состоянии проигрывателя. Итак, когда песня будет завершена, состояние VLC будет остановлено.

Пример кода:

 import vlc

def setup_player(filename):
    vlc_instance = vlc.Instance()
    media = vlc_instance.media_new(filename)
    player = vlc_instance.media_player_new()
    player.set_media(media)
    player.play()# Start the player
    print player.get_state()# Print player's state
    player.stop()# Stop the player
    print player.get_state()# Print player's state

setup_player('filename')#Put media file name/location here
  

Надеюсь, это было полезно.