循环播放时如何释放mediaplayer?

时间:2018-10-13 03:42:30

标签: android video-streaming android-mediaplayer surfaceview

我目前正在使用Surfaceview观看视频流。在我播放了3部或更多电影之后,该方法仍然可以正常工作。用户退出或视频结束后,我已经释放了媒体播放器,以便清除内存。

应用程序闲置5分钟后,我播放了一个屏幕保护程序(也就是视频流),该屏幕保护程序一直循环播放,直到用户按下遥控器上的任意键为止。然后,如果应用程序闲置5分钟,我将再次播放屏幕保护程序。现在,发生了一些事情,即Surfaceview仅显示为黑色,而本地电视播放器也显示为黑色。除非用户关闭设备,否则该应用程序也始终处于打开状态。

我在想,可能一直循环播放的屏幕保护程序是黑屏的原因。屏幕保护程序视频的大小也为75 mb。

这是用户退出播放器或视频播放完毕后执行的代码。

if(player != null) {
   if (player.isPlaying()) {
       player.stop();
   }
   player.setOnErrorListener(null);
   player.reset();
   player.release();
   player = null;
}

我可以在播放视频之前或之后释放媒体播放器吗?我正在考虑对循环的屏保数量进行限制。如果达到极限,则停止下一个,以便释放媒体播放器。然后再次调用屏幕保护程序,以使屏幕保护程序似乎仍然循环播放。

0 个答案:

没有答案