我有一个在后台服务中运行的mediaplayer实例。在我的主要活动中,我有一个surfaceview。
当活动启动并创建了surfaceview时,我绑定到服务并将mediaplayer的显示表面设置为我的主要活动的surfaceview。我使用mPlayer.setSurface(sv.getHolder().getSurface());
显示视频,到目前为止一切正常。当我的surfaceview被销毁时,在surfaceDestroyed()
回调中,我尝试通过调用mPlayer.setSurface(null);
将mediaview与mediaplayer分离。问题是,当我这样做时,我从媒体播放器收到错误(错误代码1)。
所以我的问题是,在我设置了一个MediaPlayer对象后,我用mPlayer.setSurface(sv.getHolder().getSurface());
设置了surfaceview,是否可以在不停止或重新初始化mediaplayer对象的情况下释放或分离该surfaceview?
提前致谢。
答案 0 :(得分:0)
当用户离开时,您可以避免暂停播放。这将有助于您继续播放。但还有另一个问题:当您从窗口SurfaceView
分离的活动/片段被破坏时。这意味着当用户返回到您的应用时,您必须使用重新创建的SurfaceView
实例重新初始化媒体播放器。