Пожалуйста, взгляните на мой 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;
}
}
В моей деятельности у меня есть две кнопки для воспроизведения/остановки медиафайла:
playButton
выполнить это:Intent i = new Intent(this, StreamService.class); i.putExtra("my_mp3_url_string"); startService(i);
stopButton
выполнить это:stopService(new Intent(this, StreamService.class));
Теперь у меня есть несколько вопросов:
- как я могу реализовать
pauseButton
? Я хочу приостановить воспроизведение мультимедиа в Службе - Правилен ли мой способ воспроизведения/остановки мультимедиа/сервиса? Есть ли лучший способ?
- Как я могу (периодически) обновлять пользовательский интерфейс своей деятельности из моей службы? мне нужно что-то добавить?