我正在使用 python 来获取 Windows 中当前选择的音频设备。我现在使用 pyaudio 并开放使用其他库。
我所取得的成就:
使用 pyaudio 的
get_device_info_by_index
我可以列出所有音频设备。
使用pyaudio的
get_default_output_device_info
我可以获得默认的音频设备(在我看来这是PC中嵌入的内部音频设备)
我尝试过的:
如果我插入耳机或将电脑连接到某个蓝牙扬声器,我可以使用
get_device_info_by_index
获取新的插入设备。但get_default_output_device_info
仍然给我默认的PC扬声器。
所以我需要一种方法来找出当前选择的扬声器。例如,我将耳机和蓝牙扬声器连接到电脑,因此我有 3 个输出扬声器。然后我可以使用 Windows 的控制面板来选择要使用的发言。
我需要一种方法来找出在 Python 中选择了哪个,是 pyaudio 还是任何其他库。
如果使用 Windows(仅),请使用 pycaw
pip install pycaw
然后您可以过滤音频设备,检查是否活动/非活动/禁用...,如果其活动,那么这就是默认设备
import pycaw.pycaw as pycaw
from pycaw.pycaw import AudioUtilities, IAudioEndpointVolume
from ctypes import cast, POINTER
from comtypes import CLSCTX_ALL
from pycaw.pycaw import AudioUtilities, IAudioEndpointVolume
devices = AudioUtilities.GetSpeakers()
interface = devices.Activate(IAudioEndpointVolume._iid_, CLSCTX_ALL, None)
volume = cast(interface, POINTER(IAudioEndpointVolume))
for device in devices:
print(device.FriendlyName,device.id,device.state)
您还可以使用声音设备
pip install sounddevice
print(sd.query_devices())
我正在寻找一种更改默认音频设备的方法,如果您找到方法请评论🙏