Comment lire de l'audio diffusé en arrière-plan sur Android?

J'ai une application Android qui écoute de l'audio diffusé sur Internet à l'aide de la classe MediaPlayer .

Comment permettez-moi de continuer à lire l'audio en arrière-plan lorsque l'utilisateur frappe le bouton d'accueil pour exécuter d'autres applications?

  • Imposer la rotation de l'image avec la limite d'écran dans la classe ci-dessous
  • Comment obtenir les autorisations d'application installées
  • Android AutoCompleteTextView white on white Liste déroulante
  • Store Android SQLite
  • Freehand Image Crop dessiner dans la région de bitmap
  • Existe-t-il un moyen d'ajouter une ombre intérieure à un TextView sur Android?
  • Lors de l'exécution d'autres applications, j'aimerais continuer à lire l'audio.

  • Comment contrôler l'historique / la pile de l'arrière-page Android WebView?
  • Contrôles d'intensité FlashLED
  • Comment puis-je faire des onglets pour un ViewPager maintenant que les onglets ActionBar sont obsolètes (Lollipop)
  • Question mark (?) Dans les attributs XML pour Android
  • Android - Créer des SMS à partir de l'API PDU obsolète?
  • Android: comment obtenir une chaîne dans un lieu spécifique SANS changer les paramètres régionaux actuels
  • 3 Solutions collect form web for “Comment lire de l'audio diffusé en arrière-plan sur Android?”

    Vous devez utiliser quelque chose appelé Android Services.

    Du docs:

    "Un service est un composant d'application représentant l'envie d'une application d'exécuter une opération plus longue tout en n'interagissant pas avec l'utilisateur ou pour fournir des fonctionnalités pour d'autres applications à utiliser".

    Voici l'excellent guide officiel de l'utilisation des services pour vous aider à démarrer: http://developer.android.com/guide/components/services.html

    Voici un bon tutoriel sur la construction d'un lecteur audio: http://www.androidhive.info/2012/03/android-building-audio-player-tutorial/

    Voici un didacticiel vidéo pour la création d'un lecteur de musique en streaming: http://www.youtube.com/watch?v=LKL-efbiIAM

    Vous devrez implémenter un service afin de pouvoir lire les médias en arrière-plan sans être lié à l'Activité qui a commencé la lecture. Jetez un oeil à cet exemple .

    La touche est définie dans le menu Service.START_STICKY pour continuer à jouer en arrière-plan:

      public int onStartCommand(Intent intent, int flags, int startId) { myMediaPlayer.start(); return Service.START_STICKY; } 

    Service.START_STICKY : si le processus de ce service est tué pendant son démarrage, le système tentera de recréer le service.

    Voici un exemple de ceci:

     import android.app.Service; import android.content.Intent; import android.media.MediaPlayer; import android.os.IBinder; import android.util.Log; import android.widget.Toast; /** * Created by jorgesys. */ /* Add declaration of this service into the AndroidManifest.xml inside application tag*/ 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); // Set looping 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()"); } } 

    Service de démarrage:

     Intent myService = new Intent(MainActivity.this, BackgroundSoundService.class); startService(myService); 

    Service d'arrêt:

     Intent myService = new Intent(MainActivity.this, BackgroundSoundService.class); stopService(myService); 

    Le code complet de cet exemple.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.