陀螺仪模式和手触模式,GVR中默认陀螺仪模式一直存在,手触模式有一个开关可以打开或者关闭(默认关闭)
mVideoView.setTouchTrackingEnabled(true);//开启手触模式
2.取消手机放入VR盒子中的提示
GVR播放器在进入眼镜模式之前有一个页面提示我们将手机放入GoogleCardboard眼镜中,如图所示:
有时候手机静止不动,还不能进入眼镜模式,好像系统在监测是否我们在进行将手机放入眼镜盒子中这一过程,如果想去掉这一过程怎么办?
mVideoView.setTransitionViewEnabled(false);//设置将手机放入盒子中的提示取消
3.去除Android 7.0 without Google VR Services警告对话框
在Android 7.0的手机中使用GVR控件(全景图或者全景视频控件)总是会弹出一个警告对话框,如图所示:
纠结这个问题已经半年多了,现在终于可以解决这个问题了,经过用户反馈,Google终于修复了这个bug,处理如下:
将compile ‘com.google.vr:sdk-videowidget:1.10.0’
换成compile ‘com.google.vr:sdk-videowidget:1.40.0’
在1.40.0的这个版本中Google修复了without Google VR Services弹出警告对话框的问题
我现在直接说解决办法好像很简单的样子,其实这个问题的解决过程还是很漫长的,github和stackoverflow都有讨论这个问题,感兴趣的同学可以看一下:
Avoid Google VR service Warning for nonDaydream devices?
Avoid Warning after Android 7 Update for nonDaydream devices?
除了上面对播放器设置的优化处理之外,还对播放的Activity做了一些优化处理:
4.刚开始加载视频时,添加了一个等待的加载圈(一直转圈,提醒用户视频正在加载中,视频加载成功后隐藏)
5.播放控制面板的显示和隐藏(使用Handler发消息控制)
a.加载视频成功后,延时5秒隐藏控制面板
b.点击屏幕显示控制面板后,延时5秒隐藏
c.设置播放进度完成,手指离开进度条之后,延时5秒隐藏
d.视频播放完成之后,延时5秒隐藏
6.添加播放完成后重播的功能
a.添加重播按钮
b.播放完成后逻辑处理
c.点击重播按钮逻辑处理
7.播放器Activity状态的保存
播放器Activity状态的保存可以带给用户更舒适的体验,比如用户播放视频的过程中,按下home键或者锁屏键,之后又点击我们的应用,那么视频应该继续播放(用户看到哪个位置,就从哪个位置继续播放),如果未做播放器Activity状态的保存处理,可能播放会重头开始,也可能进入播放页面视频暂停播放,这些都是不好的用户体验。
对于播放Activity状态的保存主要代码如下:
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
//保存当前播放进度,视频总时长,暂停播放状态
savedInstanceState.putLong(STATE_PROGRESS_TIME, mVideoView.getCurrentPosition());
savedInstanceState.putLong(STATE_VIDEO_DURATION, mVideoView.getDuration());
savedInstanceState.putBoolean(STATE_IS_PLAYING, isPlaying);
super.onSaveInstanceState(savedInstanceState);
}
@Override
public