我正在制作视频播放器应用程序,并希望添加全屏功能。目前我正在使用像youtube这样的布局,我的视频正在videoView
播放,而且完全没问题。
我想切换此videoView
的方向并将其拉伸以使其全屏显示。
这是我尝试过的;
((ViewManager)VideoView.getParent()).removeView(VideoView);
frameLayout.addView(VideoView);
我完全实现了结果但在这种情况下视频正在停止。就像所有VideoView
变得无用一样。当我删除它时,它会尝试在死线程上向处理程序发送消息并停止工作。
我的问题是,
有没有办法在不删除视图的情况下更改视图的父级? 或者有更好的选择让这个视图全屏显示?
注意:此VideoView的类型是Exo Media Video View,我使用了https://github.com/brianwernick/ExoMedia下面的库
答案 0 :(得分:1)
在考虑之后我找到了一个有效的解决方案。
基本上我已经写了这个功能结构
private void goFullScreen() {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
makeAllGone();
}
private void outFullScreen(){
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
makeAllVisible();
}
private void makeAllGone(){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
toolbar.setVisibility(View.GONE);
// make visibility gone for the rest of the views
}
private void makeAllVisible(){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
toolbar.setVisibility(View.VISIBLE);
// make visibility visible for the rest of the view
}