等待在python之外播放的歌曲完成

时间:2014-06-25 08:36:22

标签: python linux mp3 subprocess python-3.4

我想等一首歌来播放下一首歌。

我正在Windows上运行python 3.4,但我正试图在Linux上使用它(raspberry pi)。

我使用命令subprocess.call([PLAYER, SONG])打开mp3文件。它在vlc中播放然后停止。我知道我没有为程序包含任何内容,以便在完成时告诉python。

你们进来的地方。我想找到一个等到歌曲结束的命令,当歌曲结束时,剩下的代码就会处理完毕。

我希望该命令能够在Linux操作系统上使用,我尝试不必安装任何模块。

如果肯定需要模块,我会安装它们。

1 个答案:

答案 0 :(得分:2)

您可以使用VLC python bindings获取有关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

我希望它有所帮助。