如何从android mediaplayer分离/释放surfaceview

时间:2012-09-16 20:45:10

标签: android surfaceview android-mediaplayer

我有一个在后台服务中运行的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?

提前致谢。

1 个答案:

答案 0 :(得分:0)

当用户离开时,您可以避免暂停播放。这将有助于您继续播放。但还有另一个问题:当您从窗口SurfaceView分离的活动/片段被破坏时。这意味着当用户返回到您的应用时,您必须使用重新创建的SurfaceView实例重新初始化媒体播放器。