Как предотвратить прекращение записи видео при скольжении в стержень ненификации? (Пакет: Cameraawesome 2.5.0)Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как предотвратить прекращение записи видео при скольжении в стержень ненификации? (Пакет: Cameraawesome 2.5.0)

Сообщение Anonymous »

Я строю приложение для записи видео в Flutter, используя плагин CameraaveSome. Однако всякий раз, когда я спускаюсь вниз по оттенку уведомления или захожу в другое приложение, он автоматически останавливается на записи. Когда я пытаюсь реализовать функциональность паузы/резюме, чтобы предотвратить это, полученные видеофайлы повреждены.
текущее поведение
Оригинальная реализация Cameraaveome прекращает запись, когда изменяется жизнь приложения:
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
switch (state) {
case AppLifecycleState.resumed:
break;
case AppLifecycleState.inactive:
case AppLifecycleState.paused:
case AppLifecycleState.detached:
_cameraContext
.state
.when(onVideoRecordingMode: (mode) => mode.stopRecording());
break;
case AppLifecycleState.hidden:
break;
}
super.didChangeAppLifecycleState(state);
}

Мое попытку решения
Я изменил методы жизненного цикла приложения, чтобы приостановить/резюме запись вместо того, чтобы полностью его остановить:

Код: Выделить всё

@override
void didChangeAppLifecycleState(AppLifecycleState state) {
final currentCapture = _cameraContext.mediaCaptureController.value;
switch (state) {
case AppLifecycleState.resumed:
_cameraContext //
.state
.when(onVideoRecordingMode: (mode) => mode.resumeRecording(currentCapture!),
onVideoMode: (mode) => mode.startRecording());
break;
case AppLifecycleState.inactive:
_cameraContext //
.state
.when(onVideoRecordingMode: (mode) => mode.pauseRecording(currentCapture!));
break;
case AppLifecycleState.paused:
_cameraContext //
.state
.when(onVideoRecordingMode: (mode) => mode.stopRecording());

case AppLifecycleState.detached:
break;
case AppLifecycleState.hidden:
break;
}
super.didChangeAppLifecycleState(state);
}
проблема
После реализации функциональности паузы/резюме я получаю поврежденные видеофайлы, в которых отсутствует 30/60 секунд контента. Консоль показывает эти журналы при сохранении файла, который был приостановлен: < /p>
W/GraphicBufferSource(13694): onFrameAvailable: EOS is sent, ignoring frame
D/CCodecBufferChannel(13694): [c2.android.aac.encoder#455] MediaCodec discarded an unknown buffer
D/MPEG4Writer(13694): reset()
D/MPEG4Writer(13694): Audio track stopping. Stop source
D/MPEG4Writer(13694): Audio track source stopping
D/MPEG4Writer(13694): Audio track source stopped
V/MediaWriter(13694): Track event err/info msg:101, trackId:1, type:1000,val:-1011
V/MediaWriter(13694): Track event err/info msg:101, trackId:2, type:1000,val:-1011
I/MPEG4Writer(13694): Received total/0-length (600/0) buffers and encoded 600 frames. - Video
I/MPEG4Writer(13694): Received total/0-length (1792/0) buffers and encoded 1792 frames. - Audio
I/MPEG4Writer(13694): Audio track drift time: 0 us
I/hw-BpHwBinder(13694): onLastStrongRef automatically unlinking death recipients
D/MPEG4Writer(13694): Audio track stopped. Status:0. Stop source
D/MPEG4Writer(13694): Video track stopping. Stop source
D/MPEG4Writer(13694): Video track source stopping
D/MPEG4Writer(13694): Video track source stopped
D/MPEG4Writer(13694): Video track stopped. Status:0. Stop source
D/MPEG4Writer(13694): Duration from tracks range is [73348166, 73399922] us
D/MPEG4Writer(13694): 0 chunks are written in the last batch
D/MPEG4Writer(13694): WriterThread stopped. Status:0
I/MPEG4Writer(13694): Adjust the moov start time from 211945386468 us -> 211945386468 us
I/MPEG4Writer(13694): The mp4 file will not be streamable.
I/MPEG4Writer(13694): MOOV atom was written to the file
D/MPEG4Writer(13694): release()
D/MPEG4Writer(13694): ftruncate mPreAllocateFileEndOffset:22459512 mOffset:22458538 mMdatEndOffset:22446220 diff:974
< /code>
Вопросы < /h2>

Есть ли способ предотвратить прекращение записи камеры, когда приложение переходит на фоновые? Или, по крайней мере, когда оттенок невыполнения снят? /> среда < /h2>

Версия Flutter: 3.32.5 < /li>
Версия камеры: 2.5.0 (локальная модифицированная копия) < /li>
Платформа: Android < /li>
Устройство: ничто. Обработка фоновой записи или исправления видео коррупции будет очень ценится!


Подробнее здесь: https://stackoverflow.com/questions/796 ... tification
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»