检查 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的主要内容,如果未能解决你的问题,请参考以下文章

声音未正确播放,嗡嗡声而不是录制的声音 - Portaudio

Windows CE 上的主板蜂鸣声

如何检查音乐是不是正在从哪个音乐应用程序播放?

Android:AudioTrack 在开始时会发出咔哒声

电脑显示此设备上的蓝牙无法使用?

如何检查音频队列中的音乐是不是正在播放或暂停