2016-11-29 2 views
0

У меня есть приложение, которое воспроизводит песню, отображающую текст на экране.Понимание Android-сервиса на примере

Две ситуации:

  1. Когда песня загружается из локального файла mp3.
  2. Когда песня загружаются из удаленного места через интернет

Я понимаю, что Android служба приходит на помощь, когда песня лилась из удаленного места через интернет. Служба Android помогает здесь из-за накладных расходов ввода-вывода. В первом случае, когда песня воспроизводится из локального местоположения, услуги, возможно, являются излишним. Я могу просто воспроизвести музыку, загружающую ее в действие, и использовать MediaPlayer API для ее воспроизведения.

Правильно ли это понимание? Я что-то пропустил?

Обновление: Размер песни превышает 10 МБ. Поэтому, когда вы перекачиваете его через медленный интернет по телефону, может быть какая-то буферизация и прочее, которое будет размещено для лучшего удобства пользователей.

Заранее спасибо.

+1

«Правильно ли это понимание?» -- на самом деле, нет. «услуги, возможно, являются излишними» - для одной и той же песни в обоих сценариях примерно одинаковое количество операций ввода-вывода. Если вы используете услугу в этом случае, это будет продиктовано в значительной степени на основе того, что вы хотите, если пользователь покинет ваш пользовательский интерфейс во время воспроизведения музыки. – CommonsWare

+0

@CommonsWare Я обновил вопрос в контексте размера файла и скорости подключения к Интернету в качестве варианта использования. Я могу с уверенностью предположить, что файл, воспроизводимый локально, быстрее, чем файл, который требует потоковой передачи через Интернет. В/в на самом деле не то же самое. Есть ряд факторов, которые вы принимаете во внимание при потоковой передаче чего-либо через Интернет? – karthiks

+0

«i/o на самом деле не то же самое» - трехминутная песня занимает три минуты, независимо от того, хранится ли песня локально или поточно. Существует гораздо меньше использования полосы пропускания, если песня хранится локально. Я бы предположил, что немного меньше использования ЦП, если песня хранится локально. Если песня хранится локально, будет меньше использования батареи.Ничего из этого не имеет значения с точки зрения того, является ли услуга релевантной. – CommonsWare

ответ

3

Для разных случаев использования существуют разные Services. Для Media Player это зависит от того, хотите ли вы непрерывно воспроизводить воспроизведение на заднем или переднем плане.

Таким образом, оба случая применимы к Media Player Service. Но Android Developer Guide Media Player Service затмевает мой ответ

Использование службы с MediaPlayer
Если вы хотите, чтобы ваши средства массовой информации, чтобы играть в фоновом режиме, даже если приложение не на экране, то есть, вы хотите, чтобы продолжить игру, в то время как пользователь взаимодействуя с другими приложениями - тогда вы должны запустить службу и управлять экземпляром MediaPlayer. Вы должны быть осторожны в этой настройке, потому что у пользователя и системы есть ожидания относительно того, как приложение, работающее с фоновым сервисом, должно взаимодействовать с остальной системой. Если ваше приложение не удовлетворяет этим ожиданиям, у пользователя может быть плохой опыт. В этом разделе описываются основные вопросы, которые вы должны знать и вносит предложения о том, как подойти к ним

Ваш второй случай еще вопрос о подключении к сети и в этом случае вы можете использовать IntentService скачать проход .mp3 и это до MediaPlayer.

+0

В моем Android OnePlus Один телефон, я могу запустить приложение и позволить ему играть песню (код реализован, без сервисов). Затем я открываю игровое приложение, которое воспроизводит собственную фоновую музыку. Интересно, что я слышал как песню, которую я играл раньше, так и музыку в игре. Как это происходит? Этот инцидент побудил меня задать этот вопрос, изменив мои предположения. Ваша помощь приветствуется. – karthiks

Смежные вопросы