exoplayer를 사용하여 내 안드로이드 앱의 URL에서 비디오를 재생하고 있습니다. 초상화에서는 모든 것이 예상대로 작동합니다 (뷰 페이지, 프래그먼트 및 활동 내 탭 사용). 내 목표는 사용자가 풍경에있을 때 전체 화면으로 비디오를 재생하는 것입니다. 즉, 비디오는 가로로 재생되고 다른 모든 세부 사항은 사라질 것이고 세로 방향 인 경우 원본 레이아웃으로 되돌아갑니다. 어떻게하면 좋을까요? 또는 이것을 달성하는 가장 좋은 방법은 무엇입니까? 어떤 샘플 코드도 감사 할 것입니다. 이 내가 도울 수있는 최선 그래서Exoplayer를 사용하여 가로로 비디오를 전체 화면으로 재생하는 방법
3
A
답변
4
내가 BTW 나는 Exoplayer 데모 응용 프로그램에서이 테스트를하는 멍청한 놈, 나는 600PX에 exoplayer 높이를 변경하고이 코드를 적용하고 완벽하게 일했다.
화면 방향이 FrameLayout이 있지만, RelativeLayout의
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) simpleExoPlayerView.getLayoutParams();
난 당신이 희망, 작업 또는 제목 표시 줄을 숨길 필요가 있음을 잊어
를 사용하지 않는 경우 BTW
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checking the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
//First Hide other objects (listview or recyclerview), better hide them using Gone.
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) simpleExoPlayerView.getLayoutParams();
params.width=params.MATCH_PARENT;
params.height=params.MATCH_PARENT;
simpleExoPlayerView.setLayoutParams(params);
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
//unhide your objects here.
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) simpleExoPlayerView.getLayoutParams();
params.width=params.MATCH_PARENT;
params.height=600;
simpleExoPlayerView.setLayoutParams(params);
}
}
를 감지하는 코드를 추가 코드는 위의 코드 안에이 코드를 추가하는 데 도움이되며 getSupportActionBar 코드가 작동하려면 AppCompatActivity로 활동을 확장해야한다고 생각합니다.
if(getSupportActionBar()!=null) {
getSupportActionBar().hide();
}
//To show the action bar
if(getSupportActionBar()!=null) {
getSupportActionBar().show();
}
또한이 상태 bar.etc을 숨기기 위해, 전체 화면으로 전체 프로젝트를 설정하는 데 도움이 될 수 있습니다, 화면 방향에 따라의 onConfigurationChanged 내부에 추가해야합니다. 풍경
ExoPlayerActivity.this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN || View.SYSTEM_UI_FLAG_IMMERSIVE);
내가 코드를 편집
ExoPlayerActivity.this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
인물에 전체 화면을 종료하려면, 내가 컨트롤 버튼에의 할 때 사용자가 클릭을 보여주는에서 상태 표시 줄을 방지하기 위해 View.SYSTEM_UI_FLAG_IMMERSIVE 추가 비디오.
답변 해 주셔서 감사합니다. 그러나 마지막으로 Dialog를 사용하여이 문제를 해결하는 github 프로젝트가 발견되었습니다. https://github.com/GeoffLedak/ExoplayerFullscreen – scalp007