检查 Windows 上的任何设备是不是正在播放声音 python
Posted
技术标签:
【中文标题】检查 Windows 上的任何设备是不是正在播放声音 python【英文标题】:check if any devices on windows are playing sound python检查 Windows 上的任何设备是否正在播放声音 python 【发布时间】:2022-01-21 05:08:55 【问题描述】:我正在尝试检测 Windows 上的系统声音,我想我可以使用 pyaudio 模块,因为 winrt 不适合我。 我有这个列出所有设备的代码,我知道我可以用 pyaudio 打开流
import pyaudio
p = pyaudio.PyAudio()
for i in range(p.get_device_count()):
dev = p.get_device_info_by_index(i)
print(dev)
但是我如何判断这些设备中是否有任何当前正在输出声音?我是否为每个流打开一个流并取字节的均方根?如果这是一个 XY 问题,我最好使用另一个模块,请告诉我
【问题讨论】:
检查音频流对我来说听起来不错,但我只是检查它们是否非零,而不是查看均方根... 我该怎么做? 【参考方案1】:我之前使用名为 PyCaw(Windows 的 Python 核心音频)的库完成了这项工作
首先pip install pycaw
由于某种原因,此安装仅在以管理员身份运行时才有效,但这可能是我的机器特有的问题
下面会列出当前输出音频的进程。
from pycaw.pycaw import AudioUtilities
sessions = AudioUtilities.GetAllSessions()
for session in sessions:
print(session.Process)
由于某种原因,最后似乎总是有一个 None 引用,但你应该能够很容易地处理它
【讨论】:
github.com/AndreMiras/pycaw 是repo,如果你想看看以上是关于检查 Windows 上的任何设备是不是正在播放声音 python的主要内容,如果未能解决你的问题,请参考以下文章