Обеспечьте сохранение видеобуфера после изменения ориентации без ручной обработки изменений onConfiguration

Можно ли сделать так, чтобы приложение сохраняло буфер после ориентации без ручной обработки изменений конфигурации.

Сценарий в основном:

  1. Видеобуфер до самой последней точки должен сохраняться при изменении ориентации.

  2. Необходимо перезагрузить новую раскладку (поскольку у портрета и ланскейпа разная раскладка), Поэтому я думаю, что лучше всего позволить приложению перезапустить активность для перезагрузки новых ресурсов.

  3. Компонент видео находится во фрагменте.

Варианты, которые я пробовал, но они неприемлемы:

  1. Первый обходной путь заключается в том, чтобы сохранить положение видео и после создания представления использовать seekTo для перехода к последней точке. Однако это приведет к повторной буферизации устройства.

  2. Я попытался поиграть с фрагментом setRetainInstance(true) и убедиться, что медиаплеер не инициализируется повторно после изменения ориентации. После каждого onCreateView я просто устанавливаю mediaplayer.setDisplay() в новый держатель поверхности. К сожалению, это приводит к тому, что медиаплеер переходит в состояние ошибки, что, в свою очередь, требует перезагрузки медиаплеера.

Любые предложения/обходной путь для этого?

Отредактировано: где-то в stackoverflow я видел, что вы можете изменить держатель поверхности медиаплеера, пока медиаплеер активен в Android 4.0+. Однако я разрабатываю приложение для Android 3.x.

8
задан Maziz 21 May 2012 в 03:21
поделиться