【问题标题】: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 问题,我最好使用另一个模块,请告诉我

【问题讨论】:

  • 检查音频流对我来说听起来不错,但我只是检查它们是否非零,而不是查看均方根...
  • 我该怎么做?

标签: python windows pyaudio


【解决方案1】:

我之前使用名为 PyCaw(Windows 的 Python 核心音频)的库完成了这项工作

首先pip install pycaw 由于某种原因,此安装仅在以管理员身份运行时才有效,但这可能是我的机器特有的问题

下面会列出当前输出音频的进程。

from pycaw.pycaw import AudioUtilities

sessions = AudioUtilities.GetAllSessions()

for session in sessions:
    print(session.Process)

由于某种原因,最后似乎总是有一个 None 引用,但你应该能够很容易地处理它

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-23
  • 1970-01-01
相关资源
最近更新 更多