2011-02-26 22 views
7

En mi aplicación Android, estoy reproduciendo diferentes archivos mp3 usando la clase MediaPlayer.Aplicación de Android para Pausar/Reanudar la música de otra aplicación de reproductor de música

El usuario está reproduciendo su propia música con la aplicación de música predeterminada.

Quiero:

  1. Pausa la música de la aplicación de música por defecto.
  2. Comience a reproducir música desde mi aplicación.
  3. Cuando mi música se termina de reproducir, mi aplicación reanudará la música predeterminada del usuario.

Quiero pausar y reanudar la música del reproductor de música predeterminado de mi aplicación.

¿Es posible hacer esto?

+0

Consulte http://stackoverflow.com/a/37374679/2254969. Las respuestas publicadas aquí ahora son antiguas. –

Respuesta

6

El siguiente código hará una pausa en un MediaPlayer predeterminado mediante el envío de una emisión:

AudioManager mAudioManager = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);  

if (mAudioManager.isMusicActive()) { 

    Intent i = new Intent("com.android.music.musicservicecommand"); 

    i.putExtra("command", "pause"); 
    YourApplicationClass.this.sendBroadcast(i); 
} 
+0

Jugué un archivo mp3 en una aplicación y en otra aplicación escribí este código. Pero no está funcionando. ¿Hay algún permiso requerido? ¿O esto funciona solo dentro de una aplicación? – MobiDev

+0

Esto funciona solo para reproducir música. ¿Hay alguna otra manera que funcione para todas las aplicaciones de música? @Mcingwe –

2
// pause 
Intent i = new Intent("com.android.music.musicservicecommand"); 
i.putExtra("command", "pause"); 
sendBroadcast(i); 

// play 
Intent i = new Intent("com.android.music.musicservicecommand"); 
i.putExtra("command", "play"); 
sendBroadcast(i); 

// next 
Intent i = new Intent("com.android.music.musicservicecommand"); 
i.putExtra("command", "next"); 
sendBroadcast(i); 

// previous 
Intent i = new Intent("com.android.music.musicservicecommand"); 
i.putExtra("command", "previous"); 
sendBroadcast(i); 

Algunos más información acerca de los comandos disponibles:

public static final String SERVICECMD = "com.android.music.musicservicecommand"; 
public static final String CMDNAME = "command"; 
public static final String CMDTOGGLEPAUSE = "togglepause"; 
public static final String CMDSTOP = "stop"; 
public static final String CMDPAUSE = "pause"; 
public static final String CMDPLAY = "play"; 
public static final String CMDPREVIOUS = "previous"; 
public static final String CMDNEXT = "next"; 
1

Para controlar que se está reproduciendo música usar este código .

AudioManager mAudioManager = (AudioManager) c.getSystemService(Context.AUDIO_SERVICE); 

if(mode == Config.MUSIC_NEXT) { 
       KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_NEXT); 
       mAudioManager.dispatchMediaKeyEvent(event); 
      }else if(mode == Config.MUSIC_PLAY){ 
       KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PLAY); 
       mAudioManager.dispatchMediaKeyEvent(event); 
      } 
      else if(mode == Config.MUSIC_PREV){ 
       KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PREVIOUS); 
       mAudioManager.dispatchMediaKeyEvent(event); 
      } 

de hecho este es el único código que está trabajando para todas las aplicaciones de la música que tenía. marcado con

  • Google play music.
  • Apple Music
  • aplicación de música OnePlus
Cuestiones relacionadas