Как узнать, работает ли мой медиаплеер через службу, либо запущен, либо остановлен. В настоящее время я вызываю службу, используя действия.Как узнать статус медиаплеера в сеансе через главную активность
Как я могу проверить статус медиаплеера в своем MainActivity? так что я могу внести соответствующие изменения в пользовательский интерфейс!
Ниже представлен мой код обслуживания, который реализует медиаплеер.
public class MyService extends Service implements MediaPlayer.OnPreparedListener {
private static final String ACTION_PLAY = "com.demo.tron.mediaplayerasaservice.PLAY";
private static final String ACTION_STOP = "com.demo.tron.mediaplayerasaservice.STOP";
public MediaPlayer mMediaPlayer = null;
public int onStartCommand(Intent intent, int flags, int startId) {
if (intent.getAction().equals(ACTION_PLAY)) {
mMediaPlayer = new MediaPlayer(); // initialize it here
mMediaPlayer.setOnPreparedListener(this);
try{
mMediaPlayer.setDataSource("http://mp3channels.webradio.antenne.de:80/antenne");
}
catch (IOException e)
{
Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
}
mMediaPlayer.prepareAsync(); // prepare async to not block main thread
}
else if (intent.getAction().equals(ACTION_STOP)){
if (mMediaPlayer.isPlaying())
{
mMediaPlayer.stop();
mMediaPlayer.reset();
}
}
return START_STICKY;
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
/** Called when MediaPlayer is ready */
@Override
public void onPrepared(MediaPlayer player) {
mMediaPlayer.start();
}
}
Это код, который вызывает службу медиа-плеер через Основной вид деятельности:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this,MyService.class);
intent.setAction("com.demo.tron.mediaplayerasaservice.PLAY");
startService(intent);
}
});
Ваш способ узнать, активен ли сервис, не так хорош. Также, что после установки констант, как я могу заставить MainActivity знать, работает ли плеер? Нужно ли мне помещать какой-то обработчик, который обновляется каждую секунду. – IteratioN7T
Вам, вероятно, понадобится обработчик для отправки сообщений активности об изменениях в состояниях проигрывателя, т. Е., Следующей/предыдущей песне, песне воспроизведения/паузы и обработчике, который отправляет сообщения сообщение о действиях каждую секунду о обновлении хода песни. После того, как действие создано, вы проверяете, работает ли служба, если она не запущена, ни одна песня не воспроизводится, если служба работает, проверьте, не находится ли в состоянии паузы или нет из постоянных игроков, соответственно, вы можете обрабатывать пользовательский интерфейс. –
Да, также я обновил ваш anwser – IteratioN7T