背景:使用QAudioInput结合usb设备进行录音。
出现情况:在录音的过程中,拔出该usb设备时,程序中会去停止录音。
void AudioInputExample::stopRecording()
{
audio->stop();
destinationFile.close();
delete audio;
}
此时界面会卡死。
qt报错:
QAudioInput: failed to prepare block 0,err=6
目前没在网上找到相关的原因及解决办法,查看源码发现音频模块qt使用的是插件形式加载,所以也没找到QAudioInput调用start和stop的内部函数。
临时解决办法:
在停止设备前,使线程休眠一段时间。
QThread::msleep(500);
audio->stop();
...