如何通过python

时间:2018-04-25 15:19:56

标签: windows python-2.7 audio pyaudio

我需要通过python2.7在Windows 8上静音/取消静音麦克风。 我发现 pyaudio pymedia 与声音设备进行交互,但无法找到特定的方法/实现。

2 个答案:

答案 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_MUTEmute | unmuteunmute

以下是muteWM_APPCOMMAND message (Winuser.h) - Win32 apps | Microsoft Docs

可以使用的其他有用参数的列表。