qt 录音与播放
audioRecorder = new QAudioRecorder;//创建一个qaudiorecorder实例 QStringList inputs = audioRecorder->audioInputs();//创建一个qstringlist 列表--接收所有可用的音频输入设备名称 ui->comboBox->addItems(inputs);在使用qt creator快速入门--书本--案例中,audioInputs列表获取不到,是空的。这是怎么回事?本帖最后由 wilber 于 2020-10-30 13:34 编辑
win10系统,用QAudioDeviceInfo同样,音频输入输出设备列表,是空的。#include "mainwindow.h"#include "ui_mainwindow.h"
#include<QAudioDeviceInfo>
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow){ ui->setupUi(this); //获取输入音频设备名称 QVector<QString> aDeviceListI; QList<QAudioDeviceInfo> audioDeviceListI = QAudioDeviceInfo::availableDevices(QAudio::AudioInput); foreach (QAudioDeviceInfo devInfo, audioDeviceListI) { QString strName = devInfo.deviceName(); if (devInfo.isNull()) continue; if (strName[0] == 65533) continue; bool bFound = false; foreach (QString dev, aDeviceListI) { if (strName == dev){ bFound = true; } } if (bFound == true) continue; aDeviceListI.push_back(strName); ui->comboBoxInput->addItem(strName); }
//获取输出音频设备名称 QVector<QString> aDeviceListO; QList<QAudioDeviceInfo> audioDeviceListO = QAudioDeviceInfo::availableDevices(QAudio::AudioOutput); foreach (QAudioDeviceInfo devInfo, audioDeviceListO) { QString strName = devInfo.deviceName(); if (devInfo.isNull()) continue; if (strName[0] == 65533) continue; bool bFound = false; foreach (QString dev, aDeviceListO) { if (strName == dev){ bFound = true; } } if (bFound == true) continue; aDeviceListO.push_back(strName); ui->comboBoxOutput->addItem(strName); }}
MainWindow::~MainWindow(){ delete ui;}
建议看一下Qt官方例子 在欢迎那一栏直接搜索AUDIO
页:
[1]