Jiaozi Video Player屏幕旋转时自动切换全屏模式实现问询
实现Jiaozi Video Player竖屏切横屏自动全屏
我之前在项目里刚好实现过这个需求,分享给你具体的实现步骤和代码片段,亲测可行:
第一步:配置Activity的Manifest属性
首先要避免横竖屏切换时Activity重启,否则视频会中断重置。在你的视频Activity标签里添加以下配置:
<activity android:name=".YourVideoActivity" android:configChanges="orientation|screenSize|keyboardHidden" android:screenOrientation="sensor"> <!-- 允许屏幕自动旋转 --> </activity>
第二步:在Activity中处理屏幕方向变化
重写onConfigurationChanged方法,监听屏幕方向切换事件,触发Jiaozi Player的全屏/退出全屏操作:
public class YourVideoActivity extends AppCompatActivity { private JZVideoPlayerStandard jzVideoPlayer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_video); // 初始化播放器 jzVideoPlayer = findViewById(R.id.jz_video); jzVideoPlayer.setUp("你的视频播放URL", JZVideoPlayerStandard.SCREEN_WINDOW_NORMAL, "视频标题"); // 可选:设置封面图 // jzVideoPlayer.thumbImageView.setImageURI(Uri.parse("封面图URL")); } @Override public void onConfigurationChanged(@NonNull Configuration newConfig) { super.onConfigurationChanged(newConfig); // 判断当前屏幕方向 if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { // 横屏时自动进入全屏,先判断是否已经处于全屏状态 if (!jzVideoPlayer.isFullscreen()) { // 注意:不同版本的Jiaozi Player方法名可能有差异,比如部分版本是enterFullScreen() jzVideoPlayer.startFullscreen(this, JZVideoPlayerStandard.class, "你的视频播放URL", "视频标题"); } } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { // 竖屏时自动退出全屏(可选,根据你的需求调整) if (jzVideoPlayer.isFullscreen()) { jzVideoPlayer.exitFullscreen(); } } } // 记得在生命周期方法中释放播放器资源,避免内存泄漏 @Override protected void onPause() { super.onPause(); JZVideoPlayer.releaseAllVideos(); } @Override public void onBackPressed() { // 处理全屏状态下的返回键逻辑 if (JZVideoPlayer.backPress()) { return; } super.onBackPressed(); } }
一些注意事项
- 确保你的Jiaozi Video Player是最新版本,不同版本的API可能略有不同,如果
startFullscreen方法不存在,可以尝试enterFullScreen(); - 测试前要开启手机的自动旋转功能,否则不会触发屏幕方向变化事件;
- 如果你的播放器是自定义的子类(比如继承JZVideoPlayerStandard),只需替换代码中的对应类名即可;
- 若横屏后想保持全屏锁定,可以在进入全屏后调用
jzVideoPlayer.setLocked(true)。
内容的提问来源于stack exchange,提问作者Vikash Mishra




