Servicio de Android que controla MediaPlayer

Todo lo que quiero hacer es simplemente controlar la música de fondo en mi aplicación a través de un servicio, así que soy capaz de iniciarlo y detenerlo de cualquier actividad.

Tengo todo configurado perfectamente cuando le digo el servicio a Toast cuando se inicia y se destruye, pero tan pronto como poner los medios de comunicación playin en el lugar en su lugar Comienza bien y comienza a reproducir la música, pero tan pronto como un clic en un botón para detener el Servicio me sale un error y una fuerza cerca.

POR FAVOR, alguien me ayude a ver lo que estoy haciendo mal .. Soy bastante nuevo para desarrollar Android Estoy supongo que va a ser algo fácil.

Aquí está mi código:

import android.app.Service; import android.content.Intent; import android.media.MediaPlayer; import android.os.IBinder; import android.widget.Toast; public class MyService extends Service { private MediaPlayer player; @Override public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { super.onCreate(); Toast.makeText(this, "Service Started", Toast.LENGTH_SHORT).show(); MediaPlayer player = MediaPlayer.create(MyService.this, R.raw.my_music); player.start(); player.setLooping(true); } @Override public void onDestroy() { super.onDestroy(); player.stop(); Toast.makeText(this, "Service Stopped", Toast.LENGTH_SHORT).show(); } } 

player.stop(); —– esta línea debe darle nullPointerException .

private MediaPlayer player; Aquí usted está creando solamente la referencia. onCreate() objeto que usted está creando en onCreate() tiene alcance local solamente. Por favor, cree un objeto que tenga alcance de nivel de clase, entonces funcionará.

onBind método onBind sólo devuelve null si es un "Servicio local". Si lo entiendo correctamente, desea crear servicio remoto.

Muestre la sección de servicio remoto en este sitio de referencia.

Tiene el objeto de jugador declarado local al procedimiento OnCreate, quite la declaración local, vea a continuación:

 //MediaPlayer player = MediaPlayer.create(MyService.this, R.raw.my_music); player = MediaPlayer.create(MyService.this, R.raw.my_music); 
  • Android - No se pudo encontrar google-play-services_lib.apk! error
  • Maneras simples de interactuar con los servicios?
  • No destruir un servicio enlazado Activar destruir
  • Cómo ocultar la interfaz de usuario en android
  • Android AccountManager lanza AuthenticatorException: falla de enlace al agregar cuenta
  • NotificationListenerService para APIs por debajo de 18?
  • Cordova - Notificar el servicio de fondo en ejecución
  • Vinculando un servicio a múltiples actividades
  • Alternar entre vista grande y vista normal para notificación de android mediante programación mediante el botón de acción de notificación
  • Java.lang.ClassCastException: android.os.BinderProxy no se puede convertir en LocalBinder
  • Obtener java.lang.ClassCastException: android.os.BinderProxy cada vez que declaro y ejecuto dos servicios
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.