Wie spiele ich im Hintergrund auf Android?

Ich habe eine Android-Anwendung, die gestreamte Audio aus dem Internet mit der MediaPlayer Klasse spielt.

Wie lasse ich es fort, das Audio auf dem Hintergrund zu spielen, wenn der Benutzer die Haupttaste trifft, um andere Anwendungen zu laufen?

  • Transparente AppBarLayout und CollapsingToolbarLayout
  • Kann ich startService von Application # onCreate () starten?
  • So fügen Sie dem RecyclerView einen schnellen Scroller hinzu
  • Wie man einen Stil in einem benutzerdefinierten Thema verweist
  • Maximale Cachegröße
  • Wie baue ich eine Android-App mit externen Bibliotheken mit Ameise?
  • Beim Ausführen von anderen Apps möchte ich, dass es weiterhin das Audio abspielt.

  • Android Crash Reporting Library (vor Froyo)
  • Pre-Load oder Pre-Buffer. MP4 Video in Android App Entwicklung
  • Warten auf Zielgerät, um online zu kommen
  • Warum werden die Getter nicht bevorzugt, wenn sie auf Variablen zwischen Aktivitäten zugreifen?
  • AAPT2 Kompilieren fehlgeschlagen: ungültige Dimen auf Android 3.0 Canary 1 auf Windows
  • Maven vs Ant für automatische Builds in Android-Anwendungen
  • 3 Solutions collect form web for “Wie spiele ich im Hintergrund auf Android?”

    Du musst so etwas wie Android Services verwenden.

    Aus den docs:

    "Ein Dienst ist eine Anwendungskomponente, die entweder den Wunsch einer Anwendung darstellt, einen länger laufenden Betrieb durchzuführen, während er nicht mit dem Benutzer interagiert oder die Funktionalität für andere Anwendungen zu verwenden."

    Hier ist die hervorragende offizielle Anleitung für die Nutzung von Dienstleistungen, um Ihnen den Start: http://developer.android.com/guide/components/services.html

    Hier ist ein gutes Tutorial zum Aufbau eines Audio-Players: http://www.androidhive.info/2012/03/android-building-audio-player-tutorial/

    Hier ist ein Video-Tutorial für den Aufbau eines Streaming-Musik-Players: http://www.youtube.com/watch?v=LKL-efbiIAM

    Sie müssen einen Service implementieren, um Medien im Hintergrund zu spielen, ohne dass sie an die Aktivität gebunden sind, die die Wiedergabe gestartet hat. Schauen Sie sich dieses Beispiel an .

    Der Schlüssel ist definieren Service.START_STICKY , um die Wiedergabe im Hintergrund fortzusetzen:

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

    Service.START_STICKY : Wenn der Dienst dieses Dienstes während des Startvorgangs getötet wird, versucht das System, den Dienst neu zu erstellen.

    Dies ist ein Beispiel dafür:

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

    Dienst starten:

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

    Dienst anhalten:

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

    Vollständiger Code dieses Beispiels.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.