我需要知道当前是否正在播放音频文件,以便 python 脚本可以在播放新音频文件之前等待。我正在使用 OSX。 python 脚本使用“os”模块生成子 shell 并使用“afplay”播放 mp3 文件。该脚本可能会快速连续调用两次。我试图避免同时播放多个文件。理想情况下,我想让脚本等待当前正在播放的音频文件结束,然后再播放下一个。任何帮助是极大的赞赏。先感谢您
答案1
确保只有一个(一组合作的程序)同时执行某些操作的通用解决方案是某种互斥锁。在这种情况下,您将在调用之前获取互斥锁afplay
,并在afplay
调用完成后立即释放它。这将保证您afplay
一次只运行一个。
对于进程间互斥体,您有多种选择,但最简单的可能是锁定文件。我个人并不了解 Python,但 Stack Overflow 上有“在 Python 中锁定文件”这似乎提供了很多选择。