在使用SurfaceView实现Android MediaPlayer时,我遇到了一些奇怪的现象。 该错误仅发生在安装了Android 2.3.7(三星Galaxy S1)的设备上。
活动A是一个全屏视频活动,仅支持横向。 单击视频上的链接时,我会暂停视频并打开内部浏览器,该浏览器还支持纵向方向。 关闭内部浏览器活动后,活动A将恢复,并应恢复视频。
我在收到MediaPlayer.setDisplay()
和surfaceCreated
回调时致电surfaceChanged
,并在获得surfaceDestroyed时致电MediaPlayer.setDisplay(null)
。
发生的情况是,在返回全屏活动后,整个活动都处于横向模式,只有视频处于纵向模式。即使我旋转设备,它仍处于纵向模式。
另外两件事: - 4.0及以上版本不会发生这种情况。视频按照预期以横向模式恢复。 - 仅当我在纵向模式下按住设备时单击链接按钮才会发生(活动仍处于横向模式,但设备保持横向状态)。 如果我首先将设备旋转为横向,然后单击链接,则从内部浏览器返回时,视频方向正常。
所以看起来它与分离表面有关,而不是重新附着。
有任何线索吗?
由于
答案 0 :(得分:0)
很晚才回答这个问题,但直接在我的视频播放器活动中设置android:screenOrientation="fullSensor"
修复了我的MediaPlayer定位问题。