2010-06-30 3 views
0

Je voudrais ajouter un contrôleur de musique à mon application afin que l'utilisateur puisse mettre en pause la musique et le redémarrer. Ce serait aussi génial si l'utilisateur pouvait sauter entre les chansons.Android, un moyen de contrôler le lecteur de musique par défaut

Je n'ai rien trouvé dans l'API mais je veux le même comportement qui est disponible dans n'importe quel casque donc il doit y avoir une API juste?

Toute personne ayant une idée sur la façon de contrôler l'application multimédia par défaut?

Répondre

2

Je n'ai pas trouvé quoi que ce soit dans l'API mais je veux le même comportement qui est disponible dans tout casque il doit y avoir un droit API?

Non L'application du lecteur multimédia répond aux événements du casque.

Quelqu'un qui a une idée sur comment contrôler l'application de média par défaut?

Il n'y a pas d'API publiée pour l'application multimédia par défaut AFAIK et elle ne fait pas partie du SDK Android.

+0

Si vous développez une application et avez besoin de ce contrôle, définissez une priorité plus élevée dans votre IntentFilter lors de l'enregistrement de BroadcastReceiver dans Activity. Ça marche. 'filter.setPriority (Integer.MAX_VALUE);' – axcdnt

1

Un peu en retard, mais en poste pour les autres qui sont à la recherche de cela. Vous pouvez contrôler le lecteur multimédia par défaut en envoyant une diffusion ordonnée au système qu'un bouton média a été pressé et libéré.Procédé code suivant va jouer ou mettre en pause la musique en fonction de l'état actuel:

long eventtime = SystemClock.uptimeMillis(); 
    Intent downIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null); 
    KeyEvent downEvent = new KeyEvent(eventtime, eventtime, 
    KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE, 0); 
    downIntent.putExtra(Intent.EXTRA_KEY_EVENT, downEvent); 
    sendOrderedBroadcast(downIntent, null); 

    Intent upIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null); 
    KeyEvent upEvent = new KeyEvent(eventtime, eventtime, 
    KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE, 0); 
    upIntent.putExtra(Intent.EXTRA_KEY_EVENT, upEvent); 
    sendOrderedBroadcast(upIntent, null); 

De la même façon, vous pouvez avertir le système que le bouton suivant ou précédent a été pressé.

Questions connexes