QMediaRecorder: Not compatible codecs and container format

У меня есть приложение, которому надо дать доступ к микрофону и начать записывать. Но выскакивает данная ошибка при начале записывания.

Пролистал интернет, установил gstreamer1.0(все пакеты) и переменную окружения менял на /usr/local/lib/gstreamer-1.0

Все в пустую, опять эта ошибка. Кто сталкивался с ней??? log


Ответы (1 шт):

Автор решения: isnullxbh

Проверьте, есть ли среди поддерживаемых используемый Вами кодек:

QAudioRecorder recorder;
for (const auto& codec : recorder.supportedAudioCodecs())
    qInfo() << codec;

Например, используемый в документации AMR аудио кодек у меня в системе не установлен, соответственно, при запуске примера audiorecorder получаю вышеупомянутую Вами ошибку.

Для того, чтобы изменить кодек, необходимо сделать следующее:

  1. Выбрать один из поддердживаемых кодеков (см. код выше)
  2. Создать объекта типа QAudioEncoderSettings
  3. Указать используемый Вами кодек
  4. Применить настройки для рекордера

Пример:

QAudioRecorder recorder;

QAudioEncoderSettings settings;
settings.setCodec("audio/x-vorbis");
settings.setQuality(QMultimedia::HighQuality);
// и т.д., на Ваше усмотрение

recorder->setEncodingSettings(settings);
→ Ссылка