【问题标题】:Should Singleton pattern be used for Android MediaPlayer单例模式是否应该用于 Android MediaPlayer
【发布时间】:2012-03-26 10:41:06
【问题描述】:

我是 Android 新手,目前正在学习 Android SDK。

我正在编写一个非常简单的应用程序,它只会在与小部件交互时播放各种声音。我正在使用 MediaPlayer 播放声音。

我的问题是我应该为 MediaPlayer 使用单例模式吗?我只想共享一个 MediaPlayer 对象,但混淆来自以下链接

https://developer.android.com/reference/android/media/MediaPlayer.html

上面写着:

还建议一旦 MediaPlayer 对象不再 被使用时,立即调用 release() 以便被使用的资源 与 MediaPlayer 对象关联的内部播放器引擎可以是 立即释放。资源可能包括单例资源,例如 硬件加速组件和调用 release() 失败可能 导致 MediaPlayer 对象的后续实例回退到 软件实现或完全失败。

我现在不想将 MediaPlayer 作为服务运行。

那我该怎么办?我应该为 MediaPlayer 使用单例模式吗?

非常感谢您的帮助。

【问题讨论】:

    标签: android singleton media-player


    【解决方案1】:

    从摘录中可以看出,将 MediaPlayer 的对象保留为单例是不可取的。主要是因为只要您的媒体播放器对象处于END 状态以外的任何状态,硬件等有价值的资源就可以保持锁定状态。此外,当您调用 release() 时,该对象不能重用。您需要一个新实例。 我认为 android 团队希望开发人员在需要时创建对象并在完成时释放它。

    【讨论】:

      猜你喜欢
      • 2010-11-04
      • 1970-01-01
      • 1970-01-01
      • 2010-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多