Следует ли использовать шаблон Singleton для Android MediaPlayer - PullRequest
0 голосов
/ 26 марта 2012

Я новичок в Android и в настоящее время изучаю Android SDK.

Я пишу очень простое приложение, которое будет просто воспроизводить различные звуки при взаимодействии с виджетами. Я использую MediaPlayer для воспроизведения звуков.

У меня вопрос, должен ли я использовать шаблон синглтона для MediaPlayer? Я хочу, чтобы только один объект MediaPlayer был открыт для общего доступа, но путаница исходит из следующей ссылки

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

, который говорит, что:

Также рекомендуется, чтобы после того, как объект MediaPlayer больше не используется немедленно вызвать release (), чтобы ресурсы, используемые внутренний движок плеера, связанный с объектом MediaPlayer, может быть выпущен немедленно. Ресурс может включать в себя одноэлементные ресурсы, такие как компоненты аппаратного ускорения и сбой вызова release () могут вызвать последующие экземпляры объектов MediaPlayer для отката программные реализации или вообще не работают.

Я не хочу сейчас запускать MediaPlayer как сервис.

Так что мне делать? Должен ли я использовать шаблон Singleton для MediaPlayer?

Большое спасибо за любую помощь.

1 Ответ

0 голосов
/ 26 марта 2012

Не рекомендуется, как вы можете видеть из выдержки, сохранять объект MediaPlayer как одиночный объект.Главным образом потому, что ценные ресурсы, такие как оборудование, могут быть заблокированы, пока у вас есть медиаплеер в любом из состояний, кроме состояния END .Также, когда вы вызываете release (), объект не может быть использован повторно. Вам потребуется новый экземпляр.Я думаю, что команда разработчиков Android хочет, чтобы разработчики создавали объекты, когда это необходимо, и выпускали их, когда все готово.

...