Androidでは、私はService
とMediaPlayer
を使って音楽を再生します。ホームボタンを押すと音楽が再生され続けますが、アプリをスワイプすると停止します。ユーザーがアプリをスワイプした後、バックグラウンドで音楽を再生する方法を教えてください。
アプリをスワイプした後も音楽の再生を続けることができますか?
Androidでは、私はService
とMediaPlayer
を使って音楽を再生します。ホームボタンを押すと音楽が再生され続けますが、アプリをスワイプすると停止します。ユーザーがアプリをスワイプした後、バックグラウンドで音楽を再生する方法を教えてください。
アプリをスワイプした後も音楽の再生を続けることができますか?
Android media player codeは、MediaPlayerオブジェクトを含むserviceを使用します。これにより、アクティビティがフォアグラウンドにない場合でも再生を続けることができます。あなたはService.START_STICKYを使用する必要が
:
public int onStartCommand(Intent intent, int flags, int startId) {
mediaPlayer.start();
return Service.START_STICKY;
}
Service.START_STICKY:それは ている間、このサービスのプロセスが殺されている場合は、システムが再作成サービスしようとし始めました。
Here's完全な例: https://github.com/Jorgesys/Android-Music-in-Background
public class BackgroundSoundService extends Service {
private static final String TAG = "BackgroundSoundService";
MediaPlayer player;
public IBinder onBind(Intent arg0) {
Log.i(TAG, "onBind()");
return null;
}
@Override
public void onCreate() {
super.onCreate();
player = MediaPlayer.create(this, R.raw.jorgesys_song);
player.setLooping(true);
player.setVolume(100, 100);
Toast.makeText(this, "Service started...", Toast.LENGTH_SHORT).show();
Log.i(TAG, "onCreate() , service started...");
}
public int onStartCommand(Intent intent, int flags, int startId) {
player.start();
return Service.START_STICKY;
}
public IBinder onUnBind(Intent arg0) {
Log.i(TAG, "onUnBind()");
return null;
}
public void onStop() {
Log.i(TAG, "onStop()");
}
public void onPause() {
Log.i(TAG, "onPause()");
}
@Override
public void onDestroy() {
player.stop();
player.release();
Toast.makeText(this, "Service stopped...", Toast.LENGTH_SHORT).show();
Log.i(TAG, "onCreate() , service stopped...");
}
@Override
public void onLowMemory() {
Log.i(TAG, "onLowMemory()");
}
}
http://marakana.com/forums/android/examples/60.html。これを試して。 – Raghunandan
サービスには別のプロセスがありますか? – sandrstar
はいバインドされたサービスを使用し、スティッキー通知でフォアグラウンドを作成します –