Обработка воспроизведения музыки в приложении с несколькими активностями - PullRequest
1 голос
/ 09 января 2012

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

Ответы [ 3 ]

2 голосов
/ 09 января 2012

Вы можете воспроизвести музыкальный файл, используя службу, которую можно запускать и останавливать в любое время.

0 голосов
/ 09 января 2012

создайте файл Class, который расширяет тег Application, и начните воспроизведение музыки в методе oncreate ().

public class MyApp extends Application {
@Override
public void onCreate() {
        //start music in a service
    }
}

из parentActivity, запустите другие действия, вызвав Activity: StartActivityForResult (), поэтому, когдадочернее действие заканчивается, parentActivity должен знать, когда заканчивается действие, оно приводит к Activity :: onActivityResult ().

В этом случае вы можете начать воспроизведение мультимедиа в основном родительском действии, и вы можете закончить музыку (сервис) при нажатии назад.

Отменить любые нажатия HomeButtonClicks во всех активностях и приостановить / остановить проигрыватель (завершить обслуживание).

0 голосов
/ 09 января 2012

Реализация этого с использованием сервиса MediaPlayer - самый лучший способ добиться этого.

Если вы реализуете это в упражнении, вам придется -

  • Каждое занятие должно знать текущую песню, которую вы играете, текущее время воспроизведения.
  • Когда вы запускаете новое действие, вам нужно будет остановить медиаплеер в текущем действии и повторно запустить его в новом действии и искать его, прежде чем вы сможете начать его воспроизведение.
  • При воспроизведении аудио будет сбой. Что становится раздражающим для пользователя, если он продолжает переключаться между действиями.

Если вы реализуете это как услугу -

  • Вам необходимо сообщить о новом действии, которое играет музыка. Просто передайте логическое значение (isplaying)
  • Каждое действие будет или, скорее, должно знать, является ли оно последним, прежде чем само приложение будет закрыто Если ему известна эта информация, то все, что ему нужно сделать, это проверить флаг и повторно получить службу и закрыть ее до ее выхода.
  • При переключении между действиями не будет никаких сбоев.
...