如何在 Windows 上的 Python 中在后台播放音乐?

Posted

技术标签:

【中文标题】如何在 Windows 上的 Python 中在后台播放音乐?【英文标题】:How can I play music in background in Python on Windows? 【发布时间】:2020-08-04 21:25:55 【问题描述】:

我在 python 中做类似语音助手的事情。通过不同的模块,我设法下载了一个 youtube 视频并将其转换为 mp3。现在我想播放它并能够暂停它和其他动作。我尝试使用 pygame,但不打开窗口就无法使用它。有什么建议吗?

【问题讨论】:

你应该edit你的问题来澄清you need a Windows solution。 this 回答了类似的问题,可能会有所帮助 【参考方案1】:

为此有很好的库。检查here。 您也可以使用终端命令,例如:

import os
os.system('xdg-open music.mp3')
# music is playing ...

我在 cli 中使用 MOC 播放器,可以在后台播放和暂停音乐,例如:

import os 
os.system('moc -l music.mp3')    #play music 
os.system('moc -P music.mp3')    #pause music
os.system('moc -U music.mp3')    #unpause music

【讨论】:

是的,但没有人可以暂停它。 windows 的东西? @Filippo 我不知道 windows ,我在 linux 上使用它。【参考方案2】:

你可以像这样用pip安装后在python中使用playsound模块

from playsound import playsound

playsound('audio.mp3', False)
False 参数让声音在后台播放 遗憾的是,这只能在 Windows 上运行,因为它是为 Windows 驱动程序实现的,直到现在

【讨论】:

【参考方案3】:

通过使用 VLC

首先,安装vlc

$ pip install python-vlc

然后您可以将其添加到您的代码中

import vlc

player = vlc.MediaPlayer("/path/to/song.mp3")

player.play()

就像这样,您可以在后台播放音乐。 你甚至可以控制它!

# to pause music
player.pause()

# to stop music
player.stop()

你可以做一个这样的函数

import vlc

player = None

def play_music(path):
    global player
    if player is not None:
        player.stop # this code stop old music (if exist) before starting new one

    player = vlc.MediaPlayer(path)
    player.play()

【讨论】:

以上是关于如何在 Windows 上的 Python 中在后台播放音乐?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows 上的 Python 3 中连接到 MySQL?

如何在Windows下编写在后台一直运行的Python程序

如何在 Windows 上的 Python 中在后台播放音乐?

如何在 Windows 上的 Python 2.7 上安装 Tensorflow?

如何从 Linux 客户端调用驻留在 Windows 服务器上的 Python 脚本中的 RPC 调用

使用 Python,如何访问 Windows 网络上的共享文件夹?