Требования к медиаплееру в Android - PullRequest
1 голос
/ 12 апреля 2011

Я занимаюсь разработкой приложения для медиаплеера в Android.Это немного длинное объяснение, но, пожалуйста, просмотрите его и предложите решение

Приложение имеет первый экран, который отображает список радиостанций.Когда пользователь нажимает на любую из этих радиостанций, приложение переходит ко второму экрану, на котором отображаются элементы управления воспроизведением, паузой и остановкой.Операция на втором экране также запускает службу, которая подготавливает медиапроигрыватель и начинает воспроизведение медиафайлов.Теперь у меня есть два требования:

  1. Я хочу показать статус прогресса, пока медиа не начало воспроизводиться.Он должен отображаться в верхней части второго экрана и должен исчезнуть после начала воспроизведения носителя.Как я могу это сделать?Что-то должно быть сделано в Деятельности, которая запустила службу или в самой Службе?
  2. Теперь, когда воспроизводится мультимедиа, я хочу вернуться к первому экрану, нажав кнопку «назад» (или, возможно, выйдите из приложения).Но музыка должна продолжаться, пока я не выберу какую-либо другую радиостанцию ​​на первом экране (запустится новая музыка) или вернусь к приложению из панели уведомлений и затем остановлю музыку.

Может кто-нибудь предложить лучший способ сделать это?Есть ли примеры кодов, доступных для достижения этого?

Спасибо

Ответы [ 2 ]

1 голос
/ 12 апреля 2011

Чтобы показать диалоговое окно состояния, посмотрите на ProgressDialog, вызываемый из вашего пользовательского интерфейса. Чтобы служба продолжала играть, вам нужно использовать startService, а не bindService.

Ссылка на жизненный цикл службы

0 голосов
/ 27 апреля 2013

По второму вопросу у меня есть решение. Есть два способа сделать это.

  1. Как вы говорите, создайте одно действие, которое показывает элементы управления воспроизведением / приостановкой воспроизведения. И соответствующая служба будет продолжать играть в фоновом режиме.

  2. Второй способ заключается в том, что вы можете инициализировать объект медиаплеера в своей игровой деятельности. Не беспокойтесь, ваш медиаплеер будет продолжать играть в фоновом режиме до тех пор, пока он не будет убит из диспетчер задач . ( Имейте в виду , медиаплеер продолжит воспроизводить музыку, даже если вы закрываете действие)

Для второго способа сделайте выбор и игровую активность SingleInstance

static MediaPlayer mediaplayer;
 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.radio_play_layout);

 //here check for one thing, **mediaplayer is null or not**. If mediaplayer is null than ur activity is **starting** and u need to have data from selection activity that i need to play this station & If your mediaplayer is not null than you are coming from **notification or widget** , put some IntExtra with pendingIntent to verify that you are actually starting activity from notification or widget.

  if(mediaplayer!=null && (getIntent.getIntExtra("verifier",0)==786)){

        //show ur currently playing stations details and control butttons.becaz activity is started from notification or widget.

  }else{

        //Initialize your mediaplayer , setlayout & startplaying 

  }
  }
...