2011-02-26 5 views
7

Dans mon application Android, je joue différents fichiers mp3 en utilisant la classe MediaPlayer.Application Android pour Pause/Reprendre la musique d'une autre application de lecteur de musique

L'utilisateur joue sa propre musique avec l'application musicale par défaut.

Je veux:

  1. Pause la musique de l'application de musique par défaut.
  2. Commencez à lire de la musique depuis mon application.
  3. Lorsque la lecture de ma musique est terminée, mon application reprend la musique par défaut de l'utilisateur.

Je veux mettre en pause et reprendre la musique du lecteur de musique par défaut de mon application.

Est-ce possible?

+0

Reportez-vous à http://stackoverflow.com/a/37374679/2254969. Les réponses postées ici sont maintenant anciennes. –

Répondre

6

Le code suivant se met en pause un MediaPlayer par défaut en envoyant une émission:

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

J'ai joué un fichier mp3 dans une application, et dans une autre application, j'ai écrit ce code. Mais ça ne fonctionne pas. Y a-t-il une permission requise? Ou cela ne fonctionne que dans une application? – MobiDev

+0

Cela fonctionne uniquement pour la musique de lecture. Y at-il un autre moyen qui fonctionnera pour toutes les applications de musique? @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); 

Quelques infos sur les commandes 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

Pour contrôler en cours de lecture de musique utiliser ce code .

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); 
      } 

enfait c'est le seul code qui fonctionne pour toutes les applications de musique j'ai utilisé. vérifié avec

  • Google jouer de la musique.
  • Apple Music
  • OnePlus musique app
Questions connexes