QMediaRecorder: Not compatible codecs and container format
У меня есть приложение, которому надо дать доступ к микрофону и начать записывать. Но выскакивает данная ошибка при начале записывания.
Пролистал интернет, установил gstreamer1.0(все пакеты) и переменную окружения менял на /usr/local/lib/gstreamer-1.0
Все в пустую, опять эта ошибка. Кто сталкивался с ней???

Ответы (1 шт):
Автор решения: isnullxbh
→ Ссылка
Проверьте, есть ли среди поддерживаемых используемый Вами кодек:
QAudioRecorder recorder;
for (const auto& codec : recorder.supportedAudioCodecs())
qInfo() << codec;
Например, используемый в документации AMR аудио кодек у меня в системе не установлен, соответственно, при запуске примера audiorecorder получаю вышеупомянутую Вами ошибку.
Для того, чтобы изменить кодек, необходимо сделать следующее:
- Выбрать один из поддердживаемых кодеков (см. код выше)
- Создать объекта типа
QAudioEncoderSettings - Указать используемый Вами кодек
- Применить настройки для рекордера
Пример:
QAudioRecorder recorder;
QAudioEncoderSettings settings;
settings.setCodec("audio/x-vorbis");
settings.setQuality(QMultimedia::HighQuality);
// и т.д., на Ваше усмотрение
recorder->setEncodingSettings(settings);