概述
在获取音视频设备中遇到了一个麦克风实时检测问题(热插拔)
起初获取是通过 audioInputs() 重新调用这个函数时没有重新检测到新的结果这里因为之前避免掉使用计时器所以就没用,每次通过调用audioinputs() 所在的函数进行识别
QAudioRecorder *m_record = Q_NULLPTR;
QStringList inputs = m_record->audioInputs(); //二次调用此时inputs不会改变
if (inputs.size() == 0) {
return 2; // 找不到输入设备
}
解决:
QList audiolist = QAudioDeviceInfo::availableDevices(QAudio::AudioInput);
QString inputs;
foreach (QAudioDeviceInfo devInfo, audiolist) {
inputs = devInfo.deviceName();
if(devInfo.isNull())
{
continue;
}
}
通过这种方式获取到的devices设备信息就可以通过每次调用函数的时候inputs 就会改变,但是又存在另一个弊端,设备在拔出可以立刻检测到,但是设备信息在插入时没有立刻检测到,有一个14s左右的时间迟钝,不明白是为什么,我用电脑自带的录音机测试,有时也有这个问题,不能立刻识别到所以不知道是否是电脑本身的问题,这个方式也使用于在timeEvent去及时录音设备时间时,当设备拔掉,立刻结束掉录音。
最后
以上就是寂寞烤鸡为你收集整理的QAudioRecorder 获取音视频的设备,麦克风实时检测问题的全部内容,希望文章能够帮你解决QAudioRecorder 获取音视频的设备,麦克风实时检测问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复