Überblick
Die Offline-Wiedergabe mit den Brightcove Native Player SDKs für iOS und Android ermöglicht es Publishern, ihre Zuschauer auf völlig neue Weise zu erreichen und gleichzeitig sicherzustellen, dass ihre Inhalte sicher bleiben. Unsere SDKs bieten leistungsstarke einfache Lösungen für komplexe Offline-Wiedergabeprobleme, einschließlich Download-Management, Offline-Katalogmanagement, Analysen, DRM und natürlich Wiedergabe.
Mit der Offline-Wiedergabe können Benutzer sowohl DRM-geschützte als auch klare (nicht verschlüsselte) Videoinhalte auf ihre Geräte herunterladen und diese ansehen, wenn sie nicht verbunden sind.
Voraussetzungen
Die Brightcove Native Player SDKs unterstützen die Offlinewiedergabe mit den folgenden Versionen:
Brightcove Native SDK-Version
- Natives SDK für Android 7.0.1 oder neuere Versionen
- Natives SDK für iOS 6.0.1 oder neuere Versionen
Gerätebetriebssystemversion
- Android 5.0+
- iOS 10.0+, aber 10.3+ wird empfohlen
Einrichtung
Um zu beginnen, gehen Sie wie folgt vor:
- Wenden Sie sich an Ihren Account Manager, um Ihr Konto für die Offline-Wiedergabe zu aktivieren.
- Stellen Sie sicher, dass Sie beim Aufnehmen Ihrer Videos Dynamic Delivery verwenden.
- Bereiten Sie jedes Video vor die Sie für den Download aktivieren möchten.
Inhalt liefern
Das Streamen von Videos nutzt die Streaming-Funktion von Video Cloud mit mehreren Bitraten, die die Bandbreite an der Quelle erkennt und die beste Qualität für das Gerät liefert. Die Offline-Wiedergabefunktion unterstützt die folgenden Streaming-Typen:
- Android: Dynamisches adaptives Streaming über HTTP (DASH)
- iOS: Apple HTTP-Live-Streaming (HLS)
Rendition heruntergeladen
Sie fragen sich vielleicht, welche Wiedergabeversion heruntergeladen und für die Offline-Wiedergabe verwendet wird. Hier ist die Antwort:
Android - Der ExoPlayer legt die Standardwiedergabe fest. Um die aktuelle Interpretation zu finden, hören Sie sich die
ExoPlayerVideoDisplayComponent.RENDITION_CHANGED
Veranstaltung an.Intern verwendet das Native SDK für Android den DefaultTrackSelector. Sie können die Spitzenbitrate wie folgt einstellen:
VideoDisplayComponent: videoDisplayComponent.setPeakBitrate(yourPeakBitrate);
iOS - Wenn Sie keine Bitrate für Ihren Download angeben, erhalten Sie die niedrigste Wiedergabeversion, die eine Videospur enthält.
Um eine bestimmte Variante basierend auf der Bitrate oder Auflösung auszuwählen, lesen Sie den Abschnitt Festlegen einer Varianten-Bitrate in der SDK-Referenz.
Sicherheit
Der Schutz heruntergeladener Inhalte steht bei unserer Offline-Lösung an erster Stelle. Die Brightcove Native Player-SDKs bieten die folgenden Funktionen, um sicherzustellen, dass Ihre Inhalte sicher auf den Geräten der Zuschauer gespeichert werden:
DRM-geschützte Inhalte
- Für DRM-geschützte Inhalte verwenden die Native SDKs die folgenden Technologien:
- Android: DASH mit Widevine Modular
-
iOS: HLS mit Fair Play
-
Videoinhalte können nur auf dem Gerät und der App angesehen werden, die den Inhalt heruntergeladen haben.
-
Videoinhalte können nur bis zu einem bestimmten Datum und einer bestimmten Uhrzeit angesehen werden.
Mit den nativen SDKs können Benutzer Videos ausleihen oder kaufen. Der Ablauf gilt für Ausleihen und wird in der DRM-Lizenz über die Native SDKs-API zum Herunterladen von Videos festgelegt. Im Gegensatz dazu gilt das im Fastly-Token festgelegte Ablaufdatum für Streaming-Inhalte.
- An den Client zurückgegebene Video-URLs verfallen, sodass andere sie nicht verwenden können.
Alle Inhalte
- Wenn die App gelöscht wird, werden alle heruntergeladenen Inhalte entfernt.
- Ihre App kann lokal gespeicherte Inhalte jederzeit löschen.
Download-Verwaltung
Die Brightcove Native Player SDKs bewältigen die Komplexität des Herunterladens von Inhalten auf das Gerät eines Betrachters und vereinfachen den Prozess für native Anwendungen erheblich.
- Publisher können die Wiedergabequalität der herunterzuladenden Inhalte auswählen.
- Untertitel können heruntergeladen und offline angezeigt werden.
- Mehrere Audiospuren werden von den Native SDKs unterstützt. Einzelheiten zum Herunterladen zusätzlicher Titel finden Sie unter:
Funktionalität
Die folgenden Funktionen können zu Ihren Apps hinzugefügt werden, um das Download-Management zu unterstützen:
- Inhalt anzeigen
- Downloadgröße prüfen
- Download-Status anzeigen
- Downloads verwalten
- Lokalen Speicherplatz anzeigen
- Download anhalten/fortsetzen/abbrechen
Inhalt anzeigen
Zeigen Sie eine Liste von Inhalten an, die zum Streamen oder Herunterladen verfügbar sind.
Wenn Sie die offline_enabled
Eigenschaft eines Videos auf true setzen, markieren die Native SDKs dieses Video als herunterladbar.
Videos vorbereiten
Um ein Video als herunterladbar zu markieren, müssen Sie Folgendes tun:
- Wenn Sie dies noch nicht getan haben, wenden Sie sich an Ihren Account Manager, um Ihr Konto für die Offline-Wiedergabe zu aktivieren.
-
Stellen Sie für jedes Video, das heruntergeladen werden soll, die Offline-Aktivierung ein, indem Sie einen der folgenden Schritte ausführen:
Verwenden von Video Cloud Studio
Verwenden Sie Video Cloud Studio, um Offline-Wiedergabe aktivieren.
Offline-fähig CMS-API verwenden
Sie können auch die CMS-API die einstellen offline_aktiviert Feld auf einen Wert von wahr.
Hier ist ein Beispiel mit curl:
curl --header "Authorization: Bearer $oauth_token" --request PATCH --data ' {"offline_enabled" : true} ' https://cms.api.brightcove.com/v1/accounts/your account id/videos/your video id

Wenn Sie mit klaren Inhalten arbeiten, lesen Sie die Empfohlene Vorgehensweise Abschnitt mit Tipps zum Anzeigen Ihrer Inhalte.
Downloadgröße prüfen
Brightcove empfiehlt, dass Sie sicherstellen, dass im Gerätespeicher genügend Speicherplatz für den Download vorhanden ist, bevor ein Download angefordert wird. Gehen Sie folgendermaßen vor, um eine Schätzung der Gesamtgröße des Video-Downloads zu erhalten:
- Überprüfen Sie für iOS die Informationen in der Downloadgröße prüfen Abschnitt der Entwicklerleitfaden für iOS-Apps zur Offline-Wiedergabe.
-
Für Android erhalten Sie eine Schätzung im BeimHerunterladenGestartet Rückruf von der
DownloadEventListener
. Hier ist ein Beispiel für das Festlegen des Ereignis-Listeners:MediaDownloadable.DownloadEventListener downloadEventListener = new MediaDownloadable.DownloadEventListener() { //Your implementation. } OfflineCatalog catalog = new OfflineCatalog(context, eventEmitter, accountId, policyKey); catalog.addDownloadEventListener(downloadEventListener);
Lokalen Speicherplatz anzeigen
Informieren Sie den Benutzer, wenn nicht genügend lokaler Speicher vorhanden ist, um das Herunterladen des aktuellen Elements und aller Elemente in der Warteschlange abzuschließen.
Die SDKs stellen die geschätzte Größe und den geschätzten Fortschritt bereit, damit Sie feststellen können, ob ausreichend Speicherplatz für Downloads vorhanden ist.
Download-Status anzeigen
Zeigen Sie den aktuellen Download zusammen mit seinem Status an.
Die geschätzte Gesamtgröße, der aktuelle Downloadstatus und der Prozentsatz des Downloadfortschritts werden von den SDKs zurückgegeben.
Downloads verwalten
Mehrere Videos herunterladen
Mit den nativen SDKs können mehrere Videos für Downloads in die Warteschlange gestellt werden. Ein Benutzer kann beispielsweise mehrere Episoden einer Staffel herunterladen und die nativen SDKs verwalten den Vorgang, indem sie den Download-Status für jedes Asset bereitstellen.
Herunterladen von Sekundärtiteln (iOS)
Mit iOS 13 hat Apple die Funktionsweise von Downloads geändert. Einzelheiten finden Sie im Entwicklerleitfaden für iOS-Apps zum Herunterladen von Videos und Offline-Wiedergabe Handbuch.
Aufgrund dieser Änderung kann es vorkommen, dass die Beispiel-App für den iOS-Offline-Download Videos mit mehreren Audiospuren erneut herunterlädt. Dies liegt daran, dass der Download-Fortschritt für jeden Track angegeben wird. Der Fortschrittsbalken beginnt also für jede weitere Audiospur wieder bei Null.
Hier ist ein kurzer Überblick AVMediaSelectionOptions
über Untertitel und alternative Audiotracks: Hinzufügen von Untertiteln und alternativen Audiospuren
Gesamt-Download ermitteln
Gibt es eine Möglichkeit, didProgressTo
für den Gesamtdownload für einen Video-Token?
Nein. Für ein Video-Offline-Token gibt es keinen zusammengefassten Download-Fortschrittswert. Der App-Entwickler bestimmt, wie viele Asset-Downloads stattfinden. Der erste Asset-Download ist das Hauptvideo und die bevorzugten Audio- und Textspuren. Dies ist normalerweise der größte Download und der Fortschritt wird von 0,00 auf 100,00 erhöht.
Wenn eine Download-Anfrage zusätzliche Medienauswahlen enthält (die der App-Entwickler ausdrücklich anfordert), entspricht die Gesamt-Downloadzeit einfach der des Hauptvideos und der bevorzugten Medienauswahl plus der jeder zusätzlichen Medienauswahl. Wählen Sie bei der Darstellung des Gesamtfortschritts in der Benutzeroberfläche einen Skalierungswert für jeden Download aus, sodass die Summe aller Downloads 100 % ergibt, und summieren Sie die skalierten Downloadzeiten jeder Medienauswahl.
Identifizieren Sie Objekttypen
Gibt es eine Möglichkeit zu erkennen, welche Art von Objekt (Video- oder Textspur) jeweils? didProgressTo
Ereignisse im Zusammenhang?
Jawohl. Bei den zusätzlichen Downloads handelt es sich um Objekte der Apple Media Selection Option (AVMediaSelectionOption
), keine Spuren. Das heruntergeladene Medienauswahlobjekt wird im Fortschrittsrückruf identifiziert. (BCOVOfflineVideoManagerDelegate.h)
Apple bietet Methoden zum Untersuchen der Attribute einer Medienauswahloption. Weitere Informationen finden Sie in Apples AVMediaSelectionOption.
Sie können Metadatenwerte in der Xcode-Debugger-Konsole anzeigen, wenn Sie die OfflinePlayer-Beispiel-App (lassen Sie sich nicht von den beiden englischen Optionen täuschen - es ist nur eine Beispiel-App)
OfflinePlayer[523:355259] AVMediaSelection option 0 | legible display name: English
OfflinePlayer[523:355259] AVMediaSelection option 0 | audible display name: English
OfflinePlayer[523:355259] AVMediaSelection option 1 | legible display name: English
OfflinePlayer[523:355259] AVMediaSelection option 1 | audible display name: English
Wie das geht, seht ihr im DownloadManager-Code.
Download anhalten/fortsetzen/abbrechen
Erlauben Sie dem Benutzer, den Download von Inhalten anzuhalten, fortzusetzen oder abzubrechen.
Die Download-Funktionalität wird dort fortgesetzt, wo sie aufgehört hat, wenn der Benutzer anhält/fortsetzt oder wenn der Download unterbrochen wird. Wenn Sie beispielsweise während des Downloads die Wi-Fi-Verbindung verlieren, wird sie dort fortgesetzt, wo sie aufgehört hat, wenn Sie wieder verbunden sind.
Wenn Sie einen Video-Download abbrechen, werden alle Fortschritte gelöscht.
Lokale Katalogverwaltung
Die Brightcove Native Player SDKs vereinfachen die Verwaltung heruntergeladener lokaler Inhalte.
Die folgenden Funktionen können zu Ihren Apps hinzugefügt werden, um die lokale Katalogverwaltung zu unterstützen:
Heruntergeladene Inhalte anzeigen
Zeigen Sie alle heruntergeladenen Episoden für jede Show/Staffel an.
Die SDKs geben Metadaten und Wiedergabedetails für alle heruntergeladenen Inhalte zurück. Diese Metadaten umfassen Videotitel, Beschreibung, Miniaturansichten, verfügbare Untertitel, verfügbare Audiotracks usw.
Es gibt neue Metadateneigenschaften speziell für die Offline-Wiedergabe, die Folgendes umfassen:
DRM-geschützte Inhalte
- Token-Kennung
- Ablaufdatum der Lizenz
Alle Inhalte
- Start- und Endzeit herunterladen
- Heruntergeladener Thumbnail-Name zusammen mit seiner Datei-URL
- Heruntergeladener Postername zusammen mit seiner Datei-URL
- Relative und abgeleitete Datei-URL des Videopakets
Anschließend können Sie die Ergebnisse für Ihre spezifische Implementierung filtern.
Lokale Inhalte löschen
Erlauben Sie Benutzern, Inhalte aus dem lokalen Speicher zu löschen.
Die SDKs stellen eine Methode zum Löschen eines Videos zusammen mit seinen Metadaten und zugehörigen Assets bereit.
Inhaltswiedergabe
Mit den nativen SDKs können Sie Inhalte in den folgenden Situationen wiedergeben:
- Spielen Sie ein Video ab, während es heruntergeladen wird.
- Spielen Sie ein Video ab, nachdem es heruntergeladen wurde. Heruntergeladene Inhalte können lokal wiedergegeben werden, wenn das Gerät offline oder online ist. Das Offline-Video kann nur vom lokalen Speicher abgespielt werden.
- Wenn Sie eine Onlineversion des Videos streamen möchten, sollten Sie ein neues Videoobjekt vom Wiedergabedienst abrufen.
Analytik
Analytics wurde eingeführt, um Daten im Zusammenhang mit dem Offline-Flow zu messen. Einzelheiten finden Sie im Analysen im Zusammenhang mit der Offline-Wiedergabe mit den nativen SDKs dokumentieren.
Proben
Die folgende Tabelle enthält Links zu Codebeispielen, die Ihnen zeigen, wie Sie mit der Offline-Wiedergabe beginnen:
Beispielanwendung | Beschreibung |
---|---|
iOS Offline-Wiedergabe | Laden Sie HLS-Videos herunter und spielen Sie sie ab, auch solche, die mit FairPlay-Verschlüsselung geschützt sind. Details zu Entwicklern finden Sie im Leitfaden für iOS-App-Entwickler für die Offline-Wiedergabe. |
Android Offline-Wiedergabe | Laden Sie DASH-Videos herunter und spielen Sie sie ab, auch solche, die mit Widevine-Verschlüsselung geschützt sind. |
FAQ
Nachfolgend finden Sie Antworten auf einige allgemeine Fragen.
DRM-geschützte Inhalte
Kann der Benutzer die Systemuhr ändern, um das Ablaufdatum zu umgehen?
Android: Der absolute Ablauf bestimmt das Datum und die Uhrzeit, bis zu der eine Lizenz gültig ist. Dies wird von Widevine und der Android DRM-Schicht erzwungen. Theoretisch muss die DRM-Schicht in Android verhindern, dass der Benutzer die Ablauffrist umgeht. Alle Probleme, die wir möglicherweise gefunden haben, werden in den Versionshinweisen für Android-Betriebssysteme beschrieben.
iOS:: Der Ablauf der Lizenz wird von FairPlay erzwungen. iOS übernimmt alle Überprüfungen auf Uhränderungen usw. Eine App hat die Möglichkeit, den Lizenzablauf zu überprüfen, um den Benutzer darauf hinzuweisen, dass die Lizenz abgelaufen ist. Dies ist möglicherweise vorzuziehen, einfach ein abgelaufenes Video abzuspielen und dann einen Wiedergabefehler zu erhalten.
Werden die Lizenz- und Offline-Videos weiterhin geladen, während die App im Hintergrund läuft?
Android: Jawohl. Normalerweise wird die Lizenz sofort heruntergeladen, aber auch die Lizenz kann heruntergeladen werden, während die App im Hintergrund ausgeführt wird.
iOS:: Das Laden der Lizenz sollte im Vordergrund erfolgen. Wir haben ein Methode zum Vorabladen der Lizenz. Das Herunterladen des Hauptvideoinhalts kann erfolgen, während die App im Hintergrund läuft.
Alle Inhalte
Welches Videoformat wird zum Herunterladen von Offline-Inhalten verwendet?
Android: DRM-geschützter DASH oder unverschlüsselter DASH.
iOS:: HLS-Dämpfen. Sie können eine Bitrate für den Download angeben, um eine bestimmte Variante zu verwenden.
Werden heruntergeladene Videos lokal wiedergegeben oder gestreamt, wenn der Benutzer online ist?
Ein heruntergeladenes Video kann online oder offline wiedergegeben werden, es wird jedoch immer das heruntergeladene Video verwendet. Wenn Sie eine Online-Version des Videos wiedergeben möchten, sollten Sie ein neues Videoobjekt vom Wiedergabedienst abrufen. Das Offline-Video kann nur vom lokalen Speicher abgespielt werden.
Empfohlene Vorgehensweise
Die folgenden Richtlinien sollen Ihnen bei der Entwicklung Ihrer App für die Offline-Wiedergabe helfen.
Anzeigen von Pause/Abbrechen-Tasten
Die Schaltflächen zum Anhalten und Abbrechen sollten angezeigt werden, wenn der Video-Download gestartet wurde.
Android: Sie sollten die Pause- und Abbrechen-Tasten als Teil des Anrufs anzeigen onDownloadStarted
Rückruf im DownloadEventListener
. Einzelheiten finden Sie im Beispiel-App für die Offline-Wiedergabe.
iOS: Weitere Informationen zum Erstellen einer App für die Offline-Wiedergabe finden Sie im Entwicklerhandbuch für iOS-Apps.
Klare Inhalte anzeigen
Wenn Ihr Konto nicht DRM-aktiviert ist oder Sie mit klaren Inhalten arbeiten, führen die Brightcove Native SDKs keine serverseitige Lizenzanforderung durch. Daher gilt klarer Inhalt nicht als zum Verleih oder Kauf verfügbar. In den meisten Fällen wird für klare Inhalte empfohlen, die mieten und Kaufen Tasten und zeigen eine einzelne herunterladen Taste statt.
Aktivieren der Funktion
Wenden Sie sich an Ihren Account Manager, um mehr über die Preise zu erfahren und die Offline-Wiedergabefunktion für Ihr Konto zu aktivieren.
Fehlerbehebung
Die folgenden Tipps können Ihnen helfen, Probleme beim Herunterladen von Videos zu untersuchen.
Ein Fehler kann auftreten, wenn ein Benutzer versucht, ein Asset aufgrund eines langsamen Netzwerks mit einer höheren Bitrate herunterzuladen, als das Gerät verarbeiten kann.
Um dies zu vermeiden, können Sie Code hinzufügen, um die Gerätefunktionen zu überprüfen und zu verhindern, dass Geräte mit langsamen Verbindungen versuchen, Assets mit hoher Bitrate herunterzuladen. Sie können mit einem echten Gerät testen, während Sie die Verbindung drosseln, und den Netzwerkverkehr mit dem Charles-Proxy Werkzeug.
Android
Einzelheiten zum Umgang mit Fehlern finden Sie im Fehlermeldungen vom Native SDK für Android dokumentieren. Dazu gehören Fehlermeldungen im Zusammenhang mit der Offline-Wiedergabe.
iOS
Einzelheiten zum Umgang mit Fehlern finden Sie im Fehlerbehandlung mit dem nativen SDK für iOS dokumentieren.
Wenn der Offline-Wiedergabecode einen Fehler empfängt, fangen wir ihn ab und lösen einen NSError aus. Um den zugrunde liegenden Fehler zu erhalten, können Sie Folgendes versuchen:
NSError *underlyingError = initialError.userInfo[NSUnderlyingErrorKey];
Weitere Informationen finden Sie im Leitfaden für iOS-App-Entwickler für die Offline-Wiedergabe.
Bekannte Probleme
Eine Liste bekannter Probleme für die Betriebssysteme Android und iOS, die sich auf die Offline-Wiedergabe mit den nativen SDKs auswirken, finden Sie unter Bekannte Probleme unterstützendes Dokument.
Hinweise und Einschränkungen
Die folgenden Hinweise gelten für die Offline-Wiedergabefunktion, die von den Native SDKs unterstützt wird:
Werbung
Bei der Offline-Wiedergabe wird weder clientseitige noch serverseitige Werbung unterstützt.
HLSe
HLSe-Inhalte werden bei der Offline-Wiedergabe mit dem Brightcove Native SDK für Android, iOS oder tvOS nicht unterstützt.
Energiesparmodus
Der Energiesparmodus auf Geräten kann sich auf bestimmte Funktionen auswirken, einschließlich des Herunterladens. Weitere Informationen finden Sie unter:
- Energieverwaltung Android 9 (API-Level 28)
- Energiesparmodus auf Ihrem iPhone
- Reagieren Sie auf den Energiesparmodus auf iPhones
Geteilte Videos
Geteilte Videos können nur dann zur Offline-Anzeige heruntergeladen werden, wenn das Originalvideo dies kann. Die Eigenschaft wird vom Originalvideo geerbt und kann nur für freigegebene Videos nicht geändert werden.
Nur Audio
Die nativen SDKs unterstützen reine Audioinhalte mit Offline-Wiedergabe. Sie steuern, was die Zuschauer sehen, egal ob es sich um ein Posterbild oder einen benutzerdefinierten Bildschirm handelt.
Das Native SDK für Android erfordert eine VideoView
, und das Native SDK für iOS benötigt eine UIView
. Aus diesem Grund wird Hintergrundaudio nicht unterstützt. Das bedeutet, dass die Audiowiedergabe nicht fortgesetzt wird, wenn ein Benutzer die App in den Hintergrund schickt.
Android: App-Löschung
Wenn die App gelöscht wird, werden alle heruntergeladenen Inhalte entfernt. Dies gilt, solange der Standardspeicherort nicht überschrieben wird.
iOS: Luftspiel
Aus Sicherheitsgründen können Sie ein Offline-HLS-Video nicht zur Wiedergabe auf ein AirPlay-Gerät streamen. Dies wird von Apple als ein bestätigt AVFoundation
Einschränkung.