我是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吗?
非常感谢您的帮助。
答案 0 :(得分:0)
从摘录中可以看出,将MediaPlayer的对象保持为单例是不可取的。主要是因为只要您在除END状态以外的任何状态中有媒体播放器对象,就可以保持锁定硬件等有价值的资源。此外,当您调用release()时,该对象不能重用。您需要一个新实例。 我认为android团队希望开发人员在需要时创建对象并在完成后释放它。