在我的应用程序中,我使用 MediaPlayer 和 SurfaceHolder 类播放 HLS 视频。一切正常,除了用户离开播放器然后返回。
从日志中我可以看出,当用户返回到我的 VideoPlayerActivity 时,MediaPlayer 对象仍然存在并且视频的进度被保存。如果我只是尝试再次开始播放视频,我会收到以下消息:
[SurfaceView] queueBuffer: SurfaceTexture has been abandoned!
E/SurfaceTextureClient(128): queueBuffer: error queuing buffer to SurfaceTexture, -19
我知道这是因为 MediaPlayer 使用的 SurfaceHolder 不再存在(我知道它在活动的 OnStop 状态下被破坏)。
我的问题是,是否有任何方法可以使用相同的 MediaPlayer 对象并为其附加新的表面?