如何在终端播放声音的同时能够在 Python 中播放时停止声音?

How do i play a sound in terminal while being able to stop it while playing in Python?

我希望能够通过 运行 我在终端中的代码在 python 中播放声音(如果相关的话,我在 MacOS 上),并且能够在终端中输入一些东西中途停止。现在这就是我所拥有的:

import os
import sys

if __name__ == '__main__':
    os.system("afplay " + "/path/to/sound.mp3")
    if input("type 'halt' to stop music") == "halt":
        sys.exit()

问题是,如果我先播放声音然后请求输入,在播放完声音之前它不会显示输入。如果我要求输入然后播放声音,它在获得输入之前不会播放声音。有解决办法吗?

您可以使用 playsound 包,它具有内置的异步音频播放功能以及其他实用程序。

安装 playsound 软件包(如果您使用的是 Mac,则安装 PyObjC)。在你这样做之后,你可以试试这个:

import os
import playsound
import sys

if __name__ == '__main__':
    playsound.playsound("music.mp3", False)
    if input("type 'halt' to stop music") == "halt":
        sys.exit()