用python怎么控制windows麦克风的音量?

问题描述

使用python控制windows系统的麦克风音量, 启动程序是自动把麦克风音量调节到50%。

要用python做个类似QQ录音检测的功能,我看过Pyaudio, 可以实现录音功能。 然后又找到了win32.api,最后可以实现控制扬声器的声音。

相关代码

import win32api
WM_APPCOMMAND = 0x319

APPCOMMAND_VOLUME_MAX = 0x0a
APPCOMMAND_VOLUME_MIN = 0x09

音量最大
win32api.SendMessage(-1, WM_APPCOMMAND, 0x30292, APPCOMMAND_VOLUME_MAX * 0x10000)

音量最小
win32api.SendMessage(-1, WM_APPCOMMAND, 0x30292, APPCOMMAND_VOLUME_MIN * 0x10000)

我想得到调节麦克风的音量调节。

阅读 8.3k
2 个回答
新手上路,请多包涵
新手上路,请多包涵
from ctypes import cast,POINTER
from comtypes import CLSCTX_ALL
from pycaw.pycaw import AudioUtilities,IAudioEndpointVolume

my_mic=AudioUtilities.GetMicrophone()
interface=my_mic.Activate(IAudioEndpointVolume._iid_,CLSCTX_ALL,None)
volume=cast(interface,POINTER(IAudioEndpointVolume))
mute=volume.GetMute()
if mute==1:
    print('静音状态')
else:
    print('非静音状态')
v_v=volume.GetMasterVolumeLevel()
print('MIC音量值为',v_v)
v_r=volume.GetVolumeRange()
print('MIC音量设置值范围为',v_r)
volume.SetMasterVolumeLevel(-15,None)
print('更改MIC音量值')
v_v=volume.GetMasterVolumeLevel()
print('MIC音量值为',v_v)

wanna_v=input('输入想要的音量的值,即0到100:')
set_v=-16+int(wanna_v)*0.38
while 1:
    volume.SetMasterVolumeLevel(set_v,None)
    

被恶心久了就直接焊死。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题