QAudioInput:无法打开音频设备

问题描述

我正在尝试使用 Qt Multimedia 打开麦克风并访问数据。我按照官方的例子Audio Input Example得到了下面的代码(只是一个测试程序,没问题的时候我会注入到我的另一个项目中)。 环境:Windows 10 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 找到了一些可能的原因,但没有任何工作,例如打开 Windows 10 隐私设置。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)