当前位置: 代码迷 >> 综合 >> Qt配置FFmpeg中,读取麦克风录音时,解决中文乱码问题
  详细解决方案

Qt配置FFmpeg中,读取麦克风录音时,解决中文乱码问题

热度:24   发布时间:2023-10-15 18:55:43.0

基于Qt平台,用FFmpeg开发录音录屏时,一直无法识别麦克风。

修改如下:

// 部分代码如下:
AVFormatContext *pFormatCtx = nullptr;
pFormatCtx = avformat_alloc_context();
AVInputFormat *ifmt = av_find_input_format("dshow"); //录音使用dshowQString 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了

  相关解决方案