Потоковое аудио с использованием сервиса

Пожалуйста, взгляните на мой simple three-methods Service class который передает аудио и воспроизводит его напрямую.

 public class StreamService extends Service { private static final String TAG = "MyService"; String url; MediaPlayer mp; @Override public void onCreate() { Toast.makeText(this, "My Service Created", Toast.LENGTH_LONG).show(); Log.d(TAG, "onCreate"); mp = new MediaPlayer(); mp.setAudioStreamType(AudioManager.STREAM_MUSIC); } @Override public void onDestroy() { Toast.makeText(this, "My Service Stopped", Toast.LENGTH_LONG).show(); Log.d(TAG, "onDestroy"); mp.stop(); } @Override public int onStartCommand(Intent intent, int flags, int startid) { Toast.makeText(this, "My Service Started", Toast.LENGTH_LONG).show(); Log.d(TAG, "onStart"); url = intent.getExtras().getString("url"); try { mp.setDataSource(url); mp.prepare(); mp.start(); } catch(Exception e){} return START_STICKY; } } 

В моей деятельности у меня есть две кнопки для воспроизведения / остановки медиафайла:

Теперь у меня есть несколько вопросов:

  1. Как я могу реализовать pauseButton ? Я хочу приостановить работу медиа в службе
  2. Является ли мой способ играть / останавливать медиа / услугу правильно? Есть ли лучший способ?
  3. Как я могу (периодически) обновлять пользовательский интерфейс моей деятельности с моей службы? Мне нужно что-то добавить?

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

Чтобы выполнить это (и чтобы сделать паузу), вам нужно будет привязаться к Сервису после его запуска. С помощью связанного сервиса вы сможете звонить на него – например, пауза, воспроизведение, остановка и т. Д.

Вот некоторые ссылки, которые помогут вам в том, что вы ищете:

  • Использование службы с MediaPlayer
  • Привязка к службе