MediaRecorder и VideoSource.SURFACE, остановка не удалось: -1007 (серьезная ошибка Android)

Решение VBA может быть неприемлемым в некоторых ситуациях (например, невозможно встроить макрос из соображений безопасности и т. д.). Для этих ситуаций и вообще в целом я предпочитаю использовать формулы над макросом.

Я пытаюсь описать мое решение ниже.

  • входные данные, как показано в вопросе ( B2: F5)
  • column_header (C2: F2)
  • row_header (B3: B5)
  • data_matrix (C3: F5)
  • no_of_data_rows (I2) = COUNTA (row_header) + COUNTBLANK (row_header)
  • no_of_data_columns (I3) = COUNTA (column_header) + COUNTBLANK (column_header)
  • no_output_rows (I4) = no_of_data_rows * no_of_data_columns
  • область семян - это K2: M2, которая пуста, но ссылается, следовательно, ее нельзя удалить
  • K3 (перетащите, скажем, K100, см. описание комментариев) = ROW () - ROW ( $ K $ 2) & lt; = no_output_rows
  • L3 (перетащите, например, L100, см. Описание комментариев) = IF (K3, IF (COUNTIF ($ L $ 2: L2, L2)
  • M3 (см. Описание M100, см. Описание комментариев) = IF (K3, IF (M2 & lt; no_of_data_columns, M2 + 1,1), "-")
  • N3 (перетащите, скажем, N100, см. Комментарии description) = INDEX (row_header, L3)
  • [g 12] O3 (перетащите, скажем, O100, см. Описание комментариев) = INDEX (column_header, M3)
  • P3 (перетащите, скажем, P100, см. Описание комментариев) = INDEX (data_matrix, L3, M3)
  • Комментарий в K3: Необязательно: проверьте, нет ли ожидаемого результата. выходных рядов. Не требуется, если кто-то готовит эту таблицу только к нет. выходных строк.
  • Комментарий в L3: Цель: каждый RowIndex (1 .. no_of_data_rows) должен повторять no_of_data_columns раз. Это обеспечит поиск индекса для значений row_header. В этом примере каждый RowIndex (1 .. 3) должен повторять 4 раза. Алгоритм: проверьте, сколько раз RowIndex произошло. Если это меньше, чем no_of_data_columns раз, продолжайте использовать этот RowIndex, иначе увеличьте RowIndex. Необязательно: проверьте, нет ли ожидаемого результата. достигнутых строк.
  • Комментарий в M3: Цель: каждый столбец ColumnIndex (1 .. no_of_data_columns) должен повторяться в цикле. Это обеспечит поиск индекса для значений column_header. В этом примере каждый ColumnIndex (1 .. 4) должен повторяться в цикле. Алгоритм: если ColumnIndex превышает no_of_data_columns, перезапустите цикл в 1, иначе увеличьте значение ColumnIndex. Необязательно: проверьте, нет ли ожидаемого результата.
  • Комментарий в R4: Необязательно: используйте столбец K для обработки ошибок, как показано в столбце L и столбце M. Проверьте, не исказилось ли значение IsBlank, чтобы избежать неправильного «0» в вывод из-за пустого ввода в data_matrix.
0
задан user25 14 July 2018 в 00:08
поделиться

1 ответ

Я думаю, что нет решения

, поэтому ответ: MediaRecorder / Android глючит, или мобильные компании не заботятся обо всех функциях Android при разработке своих устройств

Update

g4]

MediaCodec также не работает с canvas

mSurface = mMediaCodec.createInputSurface();
mSurface.lockHardwareCanvas()

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

Итак, окончательный ответ: никогда не используйте lockCanvas или lockHardwareCanvas при работе с MediaCodec или MediaRecorder, это глючит ..

Единственный способ - OpenGl ES

другие ссылки о проблеме:

https://github.com/googlesamples/android-Camera2Video/issues/86 https://issuetracker.google.com / вопросы / 111433520

0
ответ дан user25 17 August 2018 в 12:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: