2016-11-22 4 views
0

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

Вот часть того, как я сделал, что

public class Reciver extends BroadcastReceiver { 

@Override 
public void onReceive(Context context, Intent intent) { 
    int command = intent.getExtras().getInt("command"); 
    if (command == 0) { 
     progressDialog.setMessage("loading..."); 
     progressDialog.show(); 
    } 

    if (command == 1) { 
     int value = intent.getExtras().getInt("value"); 
     seekBar.setMax(value); 
     int seconds = (value/1000) % 60; 
     int minutes = ((value/(1000 * 60)) % 60); 
     int hours = ((value/(1000 * 60 * 60)) % 24); 
     if (hours != 0) { 
      if (seconds < 10) { 
       durationTV.setText(hours + ":" + minutes + ":0" + seconds); 
      } else { 
       durationTV.setText(hours + ":" + minutes + ":" + seconds); 
      } 

     } else { 
      if (seconds < 10) { 
       durationTV.setText(minutes + ":0" + seconds); 
      } else { 
       durationTV.setText(minutes + ":" + seconds); 
      } 
     } 

     progressDialog.dismiss(); 
    } 

    if (command == 2) { 
     int currentDuration = intent.getExtras().getInt("value"); 
     if(!movingSeekBar) seekBar.setProgress(currentDuration); 


     int seconds = (currentDuration/1000) % 60; 
     int minutes = ((currentDuration/(1000 * 60)) % 60); 
     int hours = ((currentDuration/(1000 * 60 * 60)) % 24); 

     if (hours != 0) { 
      if (seconds < 10) { 
       currentPositionTV.setText(hours + ":" + minutes + ":0" + seconds); 
      } else { 
       currentPositionTV.setText(hours + ":" + minutes + ":" + seconds); 
      } 

     } else { 
      if (seconds < 10) { 
       currentPositionTV.setText(minutes + ":0" + seconds); 
      } else { 
       currentPositionTV.setText(minutes + ":" + seconds); 
      } 
     } 

    } 

    if (command == 3) { 
     bufferPercent = intent.getExtras().getInt("value"); 

     seekBar.setSecondaryProgress(bufferPercent); 

     Log.d("Media Player", "" + bufferPercent); 
    } 
} 

}

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

+0

уверен: шаблон «привязанный местный сервис» – pskink

+0

После некоторого чтения шаблон является именно тем, что мне нужно, чтобы отправить ответ, возможно, со ссылкой на документы Google, и я приму его, большое спасибо, я потратил 3 дня на попытку обойти это –

ответ

0

использования «оценка услуг», то, скорее всего, это будет «связанная местная служба», больше информации об этой модели можно найти here