首页 > 解决方案 > 在 Python 中播放声音,并能够在播放过程中将其切断

问题描述

我正在编写一些 python 代码来播放声音文件(MP3 或等效文件),如果用户点击连接到系统的(硬件)按钮,应该切断声音。这将在运行 Raspbian 的 Raspberry Pi 上。我以前用来播放声音的库都播放完毕。我能想到的最接近的方法是使用外部声音播放器(也许是 OMXplayer),然后在按下按钮时搜索并终止其进程,但这感觉不雅。有人可以提出更好的方法吗?

标签: pythonaudioomxplayer

解决方案


使用Pyaudio,您可以在将每个缓冲区写入流之前简单地检查一个标志,如果音频应该停止,淡出当前缓冲区,然后以静音(写入 0)继续流或停止流并退出程序。这可以通过按下按钮后约 1/10 秒的延迟轻松实现。

您还需要在应用程序中创建一个 UI 线程来处理命令,因为停止标志是在用户输入上打开的。


推荐阅读