7 days of WordPress plugins, themes & templates - for free!* Unlimited asset downloads! Start 7-Day Free Trial
Advertisement
  1. Code
  2. Android SDK

Video-Streaming in Android Apps

Scroll to top
Read Time: 6 mins

German (Deutsch) translation by Alex Grigorovich (you can also view the original English article)

Die Android-Plattform bietet Bibliotheken, mit denen Sie Mediendateien wie Remote-Videos streamen und zur Wiedergabe in Ihren Apps präsentieren können. In diesem Lernprogramm streamen wir eine Videodatei und zeigen sie mithilfe der VideoView-Komponente zusammen mit einem MediaController-Objekt an, damit der Benutzer die Wiedergabe steuern kann.

Wir werden auch kurz den Prozess der Präsentation des Videos mithilfe der MediaPlayer-Klasse durchgehen. Wenn Sie die Serie zum Erstellen eines Musik-Players für Android abgeschlossen haben, können Sie das, was Sie in diesem Tutorial gelernt haben, verwenden, um es weiter zu verbessern. Sie sollten in der Lage sein, dieses Tutorial abzuschließen, wenn Sie bereits mindestens einige Android-Apps entwickelt haben.

1. Erstellen Sie eine neue App

Schritt 1

Sie können den Code in diesem Lernprogramm verwenden, um eine vorhandene App zu verbessern, an der Sie arbeiten, oder Sie können jetzt in Eclipse oder Android Studio eine neue App erstellen. Erstellen Sie ein neues Android-Projekt, geben Sie ihm einen Namen Ihrer Wahl, konfigurieren Sie die Details und geben Sie ihm eine erste Haupt Activity klasse und ein Layout.

Schritt 2

Lassen Sie uns zunächst das Manifest des Projekts für das Streaming von Medien konfigurieren. Öffnen Sie die Manifestdatei Ihres Projekts und wechseln Sie in Ihrer IDE zur XML-Bearbeitung. Für Streaming-Medien benötigen Sie einen Internetzugang. Fügen Sie daher die folgende Berechtigung in das manifest-Element ein:

2. Fügen Sie VideoView hinzu

Schritt 1

Die Android-Plattform bietet die VideoView-Klasse, in der Sie Videodateien abspielen können. Fügen wir eine zur Hauptlayoutdatei hinzu:

Passen Sie das übergeordnete Layout bei Bedarf an Ihre eigene App an. Wir geben der VideoView-Instanz ein id-Attribut, damit wir später darauf verweisen können. Möglicherweise müssen Sie die anderen Layout-Eigenschaften für Ihr eigenes Design anpassen.

Schritt 2

Lassen Sie uns nun einen Verweis auf die VideoView-Instanz im Code abrufen. Öffnen Sie die Haupt Activity klasse Ihrer App und fügen Sie die folgenden zusätzlichen Importe hinzu:

Ihre Activity klasse sollte bereits die onCreate-Methode enthalten, in der die Inhaltsansicht festgelegt ist:

Lassen Sie uns nach der Zeile setContentView einen Verweis auf die VideoView-Instanz wie folgt abrufen, wobei wir die im XML-Layout festgelegte id verwenden:

3. Streamen Sie eine Videodatei

Schritt 1

Jetzt können wir eine Videodatei in die App streamen. Bereiten Sie den URI für den Endpunkt wie folgt vor:

Sie müssen natürlich die Remote-Adresse für die Videodatei verwenden, die Sie streamen möchten. Das Beispiel hier ist eine gemeinfreie Videodatei, die im Internetarchiv gehostet wird. Wir analysieren die Adresszeichenfolge als URI, damit wir sie an das VideoView-Objekt übergeben können:

Jetzt können Sie einfach die Wiedergabe starten:

Das Android-Betriebssystem unterstützt eine Reihe von Video- und Medienformaten, wobei jedes Gerät häufig zusätzliche Formate unterstützt.

Wie Sie im Entwicklerhandbuch sehen können, umfassen die unterstützten Videodateiformate 3GP, MP4, WEBM und MKV, je nach verwendetem Format und auf welcher Plattformebene der Benutzer installiert hat.

Zu den Audiodateiformaten, für die Sie eine integrierte Unterstützung erwarten können, gehören MP3, MID, OGG und WAV. Sie können Medien auf Android über RTSP, HTTP und HTTPS (ab Android 3.1) streamen.

4. Fügen Sie Wiedergabesteuerungen hinzu

Schritt 1

Wir haben die Videowiedergabe implementiert, aber der Benutzer wird erwarten und daran gewöhnt sein, die Kontrolle darüber zu haben. Auch hier bietet die Android-Plattform Ressourcen, um dies mithilfe vertrauter Interaktionen über die MediaController-Klasse zu handhaben.

Erstellen Sie in der onCreate-Methode Ihrer Activity klasse vor der Zeile, in der Sie aufrufen start, in der VideoView eine Instanz der Klasse:

Legen Sie als Nächstes fest, dass die VideoView-Instanz als Anker verwendet wird:

Legen Sie es schließlich als Mediencontroller für das VideoView-Objekt fest:

Wenn Sie die App jetzt ausführen, sollte der Benutzer in der Lage sein, die Wiedergabe des Streaming-Videos zu steuern, einschließlich der Schaltflächen zum schnellen Vor- und Zurückspulen, einer Wiedergabe-/Pause-Schaltfläche und einer Suchleistensteuerung.

Die Suchleistensteuerung wird von der Länge der Mediendatei rechts und der aktuellen Wiedergabeposition links begleitet. Sie können nicht nur entlang der Suchleiste tippen, um zu einer Position in der Datei zu springen, sondern der Streaming-Status wird auch mit derselben Art von Anzeige angezeigt, die der Benutzer von Websites und Apps wie YouTube gewohnt ist.

Wie Sie beim Ausführen der App sehen werden, verschwinden die Steuerelemente standardmäßig nach wenigen Augenblicken und werden wieder angezeigt, wenn der Benutzer den Bildschirm berührt. Sie können das Verhalten des MediaController-Objekts auf verschiedene Arten konfigurieren. In der Serie zum Erstellen einer Musik-Player-App für Android finden Sie ein Beispiel dafür. Sie können die Medienwiedergabe auch verbessern, indem Sie verschiedene Listener implementieren, um das Verhalten Ihrer App zu konfigurieren.

5. Verwenden von MediaPlayer

Schritt 1

Bevor wir fertig sind, wollen wir einen alternativen Ansatz für das Streamen von Videos mit der MediaPlayer-Klasse durchgehen, da wir ihn in der Serie zum Erstellen eines Musik-Players verwendet haben. Sie können Medien, einschließlich Videos, mithilfe einer Oberflächenansicht auf ein MediaPlayer-Objekt streamen. Sie können beispielsweise das folgende Layout verwenden:

Wir werden bei der Implementierung der Activity-Klasse auf SurfaceView verweisen.

Schritt 2

Fügen Sie in Ihrer Activity klasse die folgenden Schnittstellen hinzu:

Ihre IDE sollte Sie auffordern, diese nicht implementierten Methoden hinzuzufügen:

Wir werden die SurfaceCreated- und onPrepared-Methoden ergänzen.

Schritt 3

Fügen Sie der Klasse die folgenden Instanzvariablen hinzu, um die Wiedergabe zu implementieren:

In der onCreate-Methode der Activity können Sie dann beginnen, diese Variablen mithilfe des SurfaceView-Objekts zu instanziieren, das Sie dem Layout hinzugefügt haben:

Schritt 4

Richten Sie in der surfaceCreated-Methode Ihre Medienwiedergaberessourcen ein:

Starten Sie schließlich in der onPrepared-Methode die Wiedergabe:

Ihr Video sollte jetzt in der MediaPlayer-Instanz abgespielt werden, wenn Sie die App ausführen.

Abschluss

In diesem Tutorial haben wir die Grundlagen des Video-Streamings auf Android mithilfe der Klassen VideoView und MediaPlayer erläutert. Sie können dem hier implementierten Code viele Verbesserungen hinzufügen, indem Sie beispielsweise die Unterstützung für Videos oder Streaming-Medien in die von uns erstellte Musik-Player-App integrieren. Möglicherweise möchten Sie auch die zugehörigen Ressourcen für Android wie die YouTube Android Player-API überprüfen.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.