QAudioInput:无法打开音频设备

QAudioInput: failed to open audio device

我正在尝试使用 Qt 多媒体打开麦克风和访问数据。我按照官方的例子Audio Input Example得到了如下代码(只是一个测试程序,没问题我会注入到我的其他项目中)。 环境:Windows10 20H2。 Qt Creator、MinGW 64 位或 Microsoft Visual Studio 2019、MSVC2019 64 位

#include "main_window.h"
#include "ui_main_window.h"
MainWindow::MainWindow(QWidget* parent): QMainWindow(parent), ui(new Ui::MainWindow), AvailableAudioInputDevices(QAudioDeviceInfo::availableDevices(QAudio::AudioInput)), Microphone(nullptr), MicrophoneStream(nullptr)
{
    ui->setupUi(this);
    /* List all devices */
    ui->OutputTextBrowser->setPlainText(QString::fromUtf8("Available audio input devices:"));
    for(int i=0;i<AvailableAudioInputDevices.size();i++)
    {
        ui->OutputTextBrowser->append(AvailableAudioInputDevices.at(i).deviceName());
    }
    /* Set up data format */
    DataFormat.setSampleSize(16);
    DataFormat.setSampleRate(16000);
    DataFormat.setCodec(QString("audio/pcm"));
    DataFormat.setSampleType(QAudioFormat::Float);
    DataFormat.setByteOrder(QAudioFormat::LittleEndian);
    DataFormat.setChannelCount(2);
    /* Check format supported */
    if(QAudioDeviceInfo::defaultInputDevice().isFormatSupported(DataFormat))
    {
        ui->OutputTextBrowser->append(QString::fromUtf8("Supported format."));
    }
    else
    {
        ui->OutputTextBrowser->append(QString::fromUtf8("Unsupported format."));
    }
    /* Open */
    Microphone.reset(new QAudioInput(QAudioDeviceInfo::defaultInputDevice(), DataFormat));
    MicrophoneStream.reset(Microphone->start());
}

我得到了文本浏览器的输出。

Available audio input devices:
Microphone Array (Realtek(R) Audio)
Stereo Mix (Realtek(R) Audio)
Supported format.

调试控制台的输出。

QAudioInput: failed to open audio device

当然我的程序不能运行,但是这个例子可以正常运行。 我从 Google 中找到了一些可能的原因,但是 none 工作,例如打开 Windows 10 隐私设置。

16 位音频必须是有符号整数。

DataFormat.setSampleType(QAudioFormat::SignedInt);