我需要通过python2.7在Windows 8上静音/取消静音麦克风。 我发现 pyaudio 和 pymedia 与声音设备进行交互,但无法找到特定的方法/实现。
答案 0 :(得分:0)
粗略看一下pymedia documentation证实找到这种方法很难。 Pymedia似乎没有很好的记录。我的建议,在不了解图书馆的任何事情的情况下,是看
Mixer(<Microphone Device ID>).getControls()
这应该会返回一个字典,其中包含设备可用的控件。但是,您需要弄清楚您想要哪一个。文档意味着应该存在“卷”和“线路输入”条目,这两个条目听起来似乎都很有用。
然后我想你必须在字典中查看'controls'对象并查看可用的内容,可能使用反射,因为文档很缺乏。
最终代码可能如下所示:
Mixer(<Microphone Device ID>).getControls()["Line In"].control.off()
(off()
不是一个实际的方法,但它可能存在类似的东西)
希望这有帮助。
编辑: IMO这不是How to toggle microphone on and off using python的副本。这个问题实际上并没有回答任何问题,而只是列出了问题中提到的库。我觉得这个问题值得一些知识渊博的人提供一些真实的代码。
答案 1 :(得分:0)
这可以通过使用PyWin32轻松实现:
async function overViewMaker() {
const response = await fetch(api_url_overview.concat(api_key));
let data = await response.json();
data = data.results.lists;
// moved book_div out of for loop so it doesn't need to be re-queried for every book
var book_div = document.getElementById("book_list");
data.forEach((book) => {
let mybook = book.books;
mybook.forEach((eachbook) => {
var liTag = document.createElement("li");
var aTag = document.createElement("button");
var inpuHidden = document.createElement("input");
inpuHidden.setAttribute("type", "hidden");
inpuHidden.value = eachbook.title;
aTag.appendChild(inpuHidden);
aTag.addEventListener("click", (ev) => {
// you don't need to get book title from the hidden input element since it is in the scope
// inputHidden.value is also accessible from inside of here
const title = eachBook.title;
console.log(title);
});
liTag.appendChild(aTag);
book_div.appendChild(liTag);
});
});
与名称import win32api
import win32gui
WM_APPCOMMAND = 0x319
APPCOMMAND_MICROPHONE_VOLUME_MUTE = 0x180000
hwnd_active = win32gui.GetForegroundWindow()
win32api.SendMessage(hwnd_active, WM_APPCOMMAND, None, APPCOMMAND_MICROPHONE_VOLUME_MUTE)
一样,它实际上会切换麦克风
APPCOMMAND_MICROPHONE_VOLUME_MUTE
→mute
| unmute
→unmute
以下是mute
:WM_APPCOMMAND message (Winuser.h) - Win32 apps | Microsoft Docs