SurfaceView перезапускает видео при изменении ориентации устройства
Я играю видео используя SurfaceView
в Android.
Всякий раз, когда я поворачиваю устройство и экран меняет его ориентацию, видео начинает воспроизводиться с самого начала.
Я хочу, чтобы видео возобновлялось при повороте экрана.
Пожалуйста, ведите меня.
3 ответа
Добавьте это в свой файл Manifest.xml.
android:configChanges="orientation"
и вы можете использовать это, чтобы установить высоту и ширину и т. д. соответственно
@Override
public void onConfigurationChanged(Configuration newConfig) {
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
//Todo
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
// Todo
}
}
Внимание! Начиная с Android 3.2 (уровень API 13), "размер экрана" также изменяется, когда устройство переключается между книжной и альбомной ориентацией. Таким образом, если вы хотите предотвратить перезапуск среды выполнения из-за изменения ориентации при разработке для API уровня 13 или выше (как объявлено атрибутами minSdkVersion и targetSdkVersion), вы должны включить значение "screenSize" в дополнение к значению "ориентации". То есть вы должны decalare android: configChanges = "direction | screenSize". Однако, если ваше приложение предназначено для уровня API 12 или ниже, то ваша активность всегда сама обрабатывает это изменение конфигурации (это изменение конфигурации не перезапускает вашу активность, даже при работе на устройстве Android 3.2 или выше).
(скопировано с: nmr)
Установите атрибут configChanges для вашей активности в manifest.xml следующим образом: android:configChanges="direction|keyboardHidden"
Для таких задач, как воспроизведение видео и т. Д. Вы должны рассмотреть возможность использования TextureView