Можно ли сделать так, чтобы приложение сохраняло буфер после ориентации без ручной обработки изменений конфигурации.
Сценарий в основном:
Видеобуфер до самой последней точки должен сохраняться при изменении ориентации.
Необходимо перезагрузить новую раскладку (поскольку у портрета и ланскейпа разная раскладка), Поэтому я думаю, что лучше всего позволить приложению перезапустить активность для перезагрузки новых ресурсов.
Компонент видео находится во фрагменте.
Варианты, которые я пробовал, но они неприемлемы:
Первый обходной путь заключается в том, чтобы сохранить положение видео и после создания представления использовать seekTo для перехода к последней точке. Однако это приведет к повторной буферизации устройства.
Я попытался поиграть с фрагментом setRetainInstance(true) и убедиться, что медиаплеер не инициализируется повторно после изменения ориентации. После каждого onCreateView я просто устанавливаю mediaplayer.setDisplay() в новый держатель поверхности. К сожалению, это приводит к тому, что медиаплеер переходит в состояние ошибки, что, в свою очередь, требует перезагрузки медиаплеера.
Любые предложения/обходной путь для этого?
Отредактировано: где-то в stackoverflow я видел, что вы можете изменить держатель поверхности медиаплеера, пока медиаплеер активен в Android 4.0+. Однако я разрабатываю приложение для Android 3.x.