Я следовал инструкциям по добавлению пользовательской полноэкранной кнопки в Exoplayer: https://geoffledak.com/blog/2017/09/11/how-to-add-a-fullscreen-toggle-button-to-exoplayer-in-android/. Это прекрасно работает, но я заметил, что некоторые видео на некоторые устройства искажаются при нажатииполноэкранный, а затем завершить полноэкранный. Это не имеет ничего общего с полноэкранным, но больше связано с простым удалением ExoPlayer из вида и последующим добавлением его снова, например, так:
private void openFullscreenDialog(View view) {
((ConstraintLayout) view).removeView(simpleExoPlayerView);
fullScreenDialog.addContentView(simpleExoPlayerView, new ViewGroup.LayoutParams(MATCH_PARENT, WRAP_CONTENT));
isExoPlayerFullscreen = true;
fullscreenIcon.setImageDrawable(ContextCompat.getDrawable(view.getContext(), R.drawable.ic_fullscreen_exit_white_24dp));
fullScreenDialog.show();
}
private void closeFullscreenDialog(View view) {
((ViewGroup) simpleExoPlayerView.getParent()).removeView(simpleExoPlayerView);
((ConstraintLayout) view).addView(simpleExoPlayerView);
isExoPlayerFullscreen = false;
fullscreenIcon.setImageDrawable(ContextCompat.getDrawable(view.getContext(), R.drawable.ic_fullscreen_white_24dp));
fullScreenDialog.dismiss();
}
Вот два снимка экрана, которые я испытываю:
Я не могу понять, причина ли это в соотношении сторон файла, метаданных файла, размере экрана устройства или что. Я также попытался воспроизвести другие файлы mp4, которые, кажется, работают хорошо, поэтому ясно, что это не формат файла. Любая идея, в чем может быть причина?
ОБНОВЛЕНИЕ:
После тестирования большего количества видео я заметил, что проблема только в портретных видео.