Qt:按名称获取输入设备的QAudioDeviceInfo

时间:2016-12-27 04:37:57

标签: qt

是否有Qt功能可以通过QString名称获取音频输入设备?相关功能我发现:

QAudioRecorder::setAudioInput()接近我想要的但是AFAIK我无法从QAudioDeviceInfo中获得QAudioRecorder

我可以遍历QList返回的QAudioDeviceInfo::availableDevices(),但希望有更好的东西。

1 个答案:

答案 0 :(得分:2)

正如@demonplus在评论中建议的那样,Qt什么也没提供。我只是使用:

QAudioDeviceInfo getAudioDevice(QString name) {
    QAudioDeviceInfo device;
    QList<QAudioDeviceInfo> devices = 
        QAudioDeviceInfo::availableDevices(QAudio::AudioInput);
    for(int i = 0; i < devices.size(); ++i) {
        if(devices.at(i).deviceName() == name) {
            device = devices.at(i);
            break;
        }
    }
    return device;
}

QAudioDeviceInfo myDevice = getAudioDevice("default");
if(myDevice.isNull()) {
    qCritical("Device not found");
}