在我的应用程序中,我使用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对象并为其添加新表面?