Singleton模式应该用于Android MediaPlayer

时间:2012-03-26 10:41:06

标签: android singleton media-player

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

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

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

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

说:

  

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

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

那我该怎么办?我应该使用Singleton Pattern for MediaPlayer吗?

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

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