0

Я пытаюсь сделать очень простое приложение, которое синхронизирует остановку/начало записи на нескольких устройствах.Ошибки на Android-записи видео с использованием сообщения сервера как триггера

Я использую mashup из этих двух учебников.

Оба компонента хорошо работают сами по себе. Однако, когда я меняю кнопку записи, вместо этого отправляю сообщение на сервер, а затем выполняю действие запуска/остановки при поступлении многоадресного сообщения с сервера, приложение начинает аварийно разбиваться примерно на 1/4 времени.

Этот сбой обычно происходит со следующими выводами, которые бесконечно повторяются в LogCat. Весь телефон в конечном итоге умрет/перезапустится.

05-19 18:09:36.596: E/Camera3-Device(3781): RequestThread: Can't get output buffer, skipping request: No such device (-19) 
05-19 18:09:36.596: E/BufferQueueProducer(3781): [GraphicBufferSource] dequeueBuffer: BufferQueue has been abandoned 
05-19 18:09:36.597: E/Camera3-OutputStream(3781): getBufferLocked: Stream 7: Can't dequeue next output buffer: No such device (-19) 

Кто-нибудь видел эти журналы ошибок раньше и знал, что может быть причиной?

Эта проблема исчезает, когда кнопка записи запускает/останавливает запись, не отправляя/ожидая сообщения сервера.

ответ

1

Основываясь на этом forum, возможно, это было потому, что вы пытались освободить задний буфер после того, как он был выпущен из-за проблем с асинхронным доступом. Вы также можете посмотреть в этом issue:

Я думаю, что здесь происходит, что, когда MediaRecorder сбрасывается, он убивает поверхность, а фоновый поток все еще пытается сделать захваченные изображения на него. Я подозреваю, что это основано на кодах ошибок EGL 0x300b и 0x300d (EGL_BAD_NATIVE_WINDOW и EGL_BAD_SURFACE, соответственно).

Закрытие камеры перед тем, как перезагрузить магнитофон и возобновить его после этого, вокруг проблемы.

Проверьте эти связанные так вопросы:

+0

Спасибо, я сделал это изменение, и оно все еще врезаться время от времени, но не так часто, и я больше не получу те ошибки журнала. Я должен все еще иметь некоторые проблемы параллелизма, которые мне нужно выследить. – flutillie