LINUX.ORG.RU

Мониторинг аудио записанного через QMediaCaptureSession

 , , ,


0

1

Мониторинг аудио записанного через QMediaCaptureSession

Добрый день.

При использовании QMediaCaptureSession, QMediaRecorder для записи аудио с микрофона в файл получается проблема: Я начинаю запись через метод record() класса QMediaRecorder. Далее я получаю сигнал QMediaRecorder::recorderStateChanged со значением QMediaRecorder::RecordingState, и вывожу в окне надпись, что запись начата. Проблема в том, что результирующая запись начинается с некоторой задержкой, а не в момент получения сигнала QMediaRecorder::RecordingState, т.е. на запись не попадает звук или слова, которые произносились СРАЗУ после получения сигнала QMediaRecorder::RecordingState в течение 1-2 секунд.

Вместе с тем в документации Qt есть такое утверждение: https://doc.qt.io/qt-6/qtmultimedia-changes-qt6.html

New features in Qt 6
...
You can now also monitor the audio recorded by a capture session.
...

Вопросы:

  • Могу ли я как-то анализировать данные, которые идут на запись и понять, что данные еще не начали приходить и еще не нужно выводить в окне прораммысообщение о том, что запись начата
  • Что имеется в виду в документации Qt под указанным утверждении о том, что вы можете мониторить аудио, записанное через сессию захвата?
★★★★★

В документации написано, что уведомление приходит сразу, а запись начинается асинхронно. Причём запись может и не начаться вовсе, тогда придёт уведомление об ошибке, позже.

А в метаданных metaData() не появляется длина реальной записи?

raspopov
()
Ответ на: комментарий от raspopov

К сожалению у QMediaRecorder с момента создания, перед началом записи аудио и после начала не генерируется сигнал metaDataChanged. А если обратиться к duration из meta data вручную, то оно возвращает невалидный QVariant.

rumgot ★★★★★
() автор топика