基于Qt平台,用FFmpeg开发录音录屏时,一直无法识别麦克风。
修改如下:
// 部分代码如下:
AVFormatContext *pFormatCtx = nullptr;
pFormatCtx = avformat_alloc_context();
AVInputFormat *ifmt = av_find_input_format("dshow"); //录音使用dshow
QString audioDevOption = QStringLiteral("audio=麦克风阵列 (Conexant SmartAudio HD)");
QByteArray audioDev = audioDevOption2.toLocal8Bit();
char *audio = audioDev.data();
int ret = avformat_open_input(&pFormatCtx,audio, ifmt,nullptr);
// ret = 0
// 通过。
中文乱码,需要添加下面的处理。
#ifdef _MSC_VER
//MSVC编译器环境下的代码
#define _T(str) QString::fromLocal8Bit(str)
#elif __GNUC__
//MinGW编译器环境下的代码
#define _T(str) QString(str)
#endif
放在 *.pro里面,让编译器选择,使用哪个编译器
定义了上面之后,用:
QString audioDevOption = QStringLiteral(_T("audio=麦克风阵列 (Conexant SmartAudio HD)"));
添加_T("中文内容"); 就OK了