【问题标题】:Should I release every time?我应该每次都释放吗?
【发布时间】:2016-07-06 16:48:40
【问题描述】:

我想知道在我播放随机声音之前释放我的媒体播放器是否是一种不好的做法:

所以我通常不会过多地处理媒体输出,但我正在制作一个简单的应用程序,每次单击按钮时都会播放随机声音sounds [] 是一个充满原始媒体文件的数组)

public void onClick(View v){

  if(mediaplayer != null){
    mediaplayer.release();
  }

   mediaplayer = MediaPlayer.create(this, sounds[randomNum])
   mediaplayer.start();

}

所以我的问题是,每次在创建之前发布我的媒体播放器会被视为好/坏做法吗?有没有更好的方法来做到这一点,因为释放和重新初始化 MediaPlayer 对象似乎会消耗资源......

谢谢,

鲁基尔

【问题讨论】:

  • 您希望在该声音后不久重新使用媒体播放器吗?如果是这样,那么处置资源是毫无意义的,只是在不久之后重新收集它们。不妨避免开销。如果在您播放不同声音之间的其他地方需要资源,则释放它。否则,有什么意义呢?您应该分析您的应用,不要预先优化。
  • @VinceEmigh 那我应该如何每次点击都获得一个新的随机声音?

标签: java android arrays performance optimization


【解决方案1】:

当您不想再使用 MediaPlayer 时,通常会使用 release()。一旦你调用它,它就再也不能使用了。它有效地破坏了支持其功能的本机组件。

如果您确实发布了,那么下次您想要播放它时,您将不得不重新准备媒体。这可能是一个耗时的过程。如果您希望声音响应按钮按下而播放,您可能不希望每次都准备它。

【讨论】:

    猜你喜欢
    • 2020-07-24
    • 2011-03-21
    • 2017-04-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-13
    • 2018-12-10
    • 1970-01-01
    • 2011-04-27
    相关资源
    最近更新 更多