Bekannte Probleme: Brightcove Native Player-SDKs

In diesem Thema erfahren Sie etwas über die bekannten Probleme im Zusammenhang mit den Brightcove Native Player-SDKs.

Allgemein

Große Untertiteldateien

Untertitel, die als Teil eines Live-Events aufgenommen wurden, erzeugen manchmal eine Untertiteldatei mit Hinweisen, die wie folgt aussehen:

00: 00: 03.760 -> 00: 00: 03.960
Diese

00: 00: 03.960 -> 00: 00: 04.160
Dieses Programm

00: 00: 04.160 -> 00: 00: 04.400
Dieses Programm wird

00: 00: 04.400 -> 00: 00: 04.600
Dieses Programm wird sein

00: 00: 04.600 -> 00: 00: 04.840
Dieses Programm wird beschriftet

Diese Art der Untertitelung erzeugt einen Marquee-Effekt, kann jedoch den unbeabsichtigten Nebeneffekt haben, eine Untertiteldatei mit einer Größe von bis zu mehreren Megabyte zu erstellen. Wenn diese Untertitel im Player ausgewählt sind, versucht der Player, die gesamte Datei zum Parsen und Anzeigen herunterzuladen (VTT-Untertitel können nicht gestreamt werden). Dies kann zu Leistungsproblemen im Player führen, einschließlich OutOfMemory Fehler.

Brightcove empfiehlt, diese Untertitel in weniger Zeilen umzuformatieren:

00: 00: 03.760 -> 00: 00: 04.840
Dieses Programm wird beschriftet

Drittanbieter-Frameworks

Brightcove testet oder bietet keine Unterstützung für die Integration der Brightcove Native SDKs in Entwicklungsframeworks von Drittanbietern wie Xamarin, React Native und Titanium. Wenden Sie sich an Ihren Framework-Anbieter, um Unterstützung bei der Integration zu erhalten. Hier sind einige Probleme, auf die Sie stoßen können:

  • Wenn Sie das Brightcove Native SDK für Android mit dem Titanium-Framework verwenden, können bei DRM-Inhalten Wiedergabefehler auftreten. Dies liegt daran, dass das Titanium-Framework den Standard überschreibt Java.net.ResponseCache mit eigenem TiResponseCache .

Verwenden von Emulatoren

Unabhängig davon, ob Sie den Android Studio-Emulator oder den Xcode-Simulator zum Testen der Videowiedergabe verwenden, beachten Sie, dass Emulatoren die Leistung eines tatsächlichen Geräts nicht genau darstellen. Während Sie während der Entwicklung Emulatoren für erste Tests verwenden können, empfiehlt es sich, echte Geräte zu verwenden, um genaue Ergebnisse zu erzielen.

Videos mit sehr kleinen Abmessungen

Videowiedergaben mit sehr kleinen Abmessungen (weniger als 50px) werden auf iOS oder Android (in den SDK-Playern oder anderweitig) nicht wiedergegeben.

Natives SDK für Android

360°-Videos

  • Wenn Sie das nicht verwenden BrightcovePlayer Klasse wird Ihr 360°-Video abgespielt, aber die App kann beim Anhalten und Fortsetzen abstürzen. Weitere Informationen zur Verwendung dieser Klasse finden Sie unter Grundlegendes zur BrightcovePlayer-Klasse dokumentieren.
  • Nach dem Drehen des Geräts kann es zu einer Videodrift kommen. Das Problem hängt mit der Kalibrierung des Gerätegyroskops zusammen und kann die Leistung beeinträchtigen. Es ist nicht mit bestimmten Gerätemarken und -modellen verknüpft, sondern mit der auf dem Gerät installierten Bewegungssensor-Hardware. Die neueren Android-Betriebssysteme verfügen über ausgefeiltere Filteralgorithmen, um das Problem zu beheben. Eine einfache Lösung besteht darin, das Gerät aus- und wieder einzuschalten, während es auf einer ebenen, stabilen Oberfläche liegt.

Android 12

  • Bei Android 12 wird auf bestimmten Geräten (z. B. Google Pixel-Telefonen) die Wiedergabe nicht unterbrochen, wenn der Player zur Aufgabenliste verschoben wird, anstatt ihn vollständig in den Hintergrund zu stellen, und es wird kein activityPaused Ereignis ausgelöst. Außerdem wird kein activityResumed Ereignis ausgelöst, wenn der Spieler aus der Aufgabenliste in den Vordergrund gerückt wird. Für dieses Verhalten wurde ein Fehler bei Google gemeldet.

Bildunterschriften

  • Es gibt eine bekannte Einschränkung bei der Unterstützung von Untertiteln, bei der 608/708-Untertitel im Player ohne die Formatierung angezeigt werden, die in den Segmentdaten vorhanden sein kann. Es ist geplant, dies in einem zukünftigen Update des SDK zu beheben.
  • In-Manifest- und 608/708-Beschriftungen werden nicht automatisch nach Aktivitäts-Lebenszyklusereignissen angezeigt.

    Dies kann passieren, wenn ein Spieler in den Hintergrund und dann wieder in den Vordergrund gebracht wird. Eine Abhilfe zur Anzeige der Untertitel besteht darin, den Untertitel erneut aus dem Untertitelmenü auszuwählen.

  • Bestimmte Live-Stream-Encoder (z. B. Elemental) verfügen über eine Timecode-Einbrennfunktion, die die aktuelle Streamzeit im Player-Display anzeigt. Dieses Einbrennen kann das Format 608 haben, was dazu führen kann, dass die Schaltfläche Untertitel (CC) angezeigt wird, wenn keine Untertitel im Stream vorhanden sind. Derzeit gibt es keine Abhilfe, aber wir werden eine Lösung für eine zukünftige SDK-Version untersuchen.

Chromecast

  • Das native SDK unterstützt die Chromecast-Warteschlangenbildung mit der Brightcove Cast Receiver-App nicht.

Inhalt

  • Video- und Playlist-Objekte sind nicht vollständig paketierbar.

    Objekte müssen vollständig paketierbar sein, um über den Android Binder übertragen zu werden. Ein gängiges Beispiel hierfür ist das Hinzufügen eines Objekts zu einem Intent, um es an eine andere Aktivität oder einen anderen Dienst zu senden oder es im savedInstanceState-Bundle zu speichern. Derzeit sind die Video- und Playlist-Objekte im Android SDK nicht vollständig parcelable.

DRM

  • Die DRM-Schicht auf einigen Plattformen kann den Medieninhalt möglicherweise nicht entschlüsseln. Obwohl es sich bei dieser Plattform nicht um ein definitives Problem handelt, haben Tests gezeigt, dass dieses Problem bei Geräten der Nexus-Klasse häufiger auftritt. Dieses Problem liegt außerhalb des Anwendungsbereichs des Android SDK und des ExoPlayers und kann dort nicht behoben werden.

Live-Streams

  • Das Native SDK unterstützt keine DASH-Live-Streams und auch keine Werbung mit HLS-Live-Streams.

Offline-Wiedergabe

  • Um Unterstützung für das Herunterladen hinzuzufügen, wenn das Gerät gesperrt ist, indem Sie entweder in den Ruhezustand wechseln oder den Netzschalter betätigen, fügen Sie Ihrem . die folgende Berechtigung hinzu AndroidManifest.xml Datei :
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  • Ab Android 8.0 ist es möglich, die Energieeinstellungen zu verwalten, wenn die App in den Hintergrund verschoben wird. Dies kann dazu führen, dass der Downloadvorgang gestoppt wird, wenn das Gerät von einer Stromquelle getrennt wird. In den meisten Fällen wird der Download fortgesetzt, wenn die App wieder in den Vordergrund gebracht wird. Es ist wichtig zu beachten, dass die Energieverwaltung betriebssystem- und herstellerspezifisch sein kann. Daher versucht das Brightcove Native SDK für Android nicht, Einstellungen im Zusammenhang mit der Energieverwaltung zu verwalten oder zu überschreiben.
  • Wenn Sie Widevine Modular mit Android 8.0.0 (und 8.1.0 auf einigen Geräten) verwenden, stellen Sie möglicherweise fest, dass eine Mietlizenz beim Erwerb bereits abgelaufen ist. Dies ist ein bekanntes Problem mit dem Widevine Modular CDM und kann weder im Brightcove Android SDK noch im ExoPlayer behoben werden. Obwohl dieses Problem für die meisten Geräte mit Android 8.1.0 nicht reproduzierbar ist, gibt es keine Problemumgehung für Geräte mit Android 8.0.0 oder 8.1.0, wo es auftritt.
  • Nur bei Android 5.x-Geräten beobachtet: Wenn Sie die Widevine-Lizenz freigeben, indem Sie die OfflineLicenseManager.releaseLicense Methode, a MediaDrmStateException Fehler wird geworfen.
  • In dem OfflinePlaybackSampleApp , gibt es zwei Ablauffristen für Widevine-Lizenzen.

    • absoluteExpiration ist das Ablaufdatum der Lizenz zum Starten der Wiedergabe heruntergeladener Videos
    • playDuration so lange kann das Video abgespielt werden

    Wann playDuration weniger als 60 Sekunden wird, behandelt Widevine CDM die Lizenz als abgelaufen und wirft einen Schlüsselanfrage konnte nicht abgerufen werden Error. Die Wiedergabe startet nicht mit dieser Widevine-Lizenzausnahme.

    Mit dem Brightcove Native SDK für Android v6.1.0+ können Sie telefonieren AbstractOfflineCatalog.requestRentalLicense(Video, Date, long, EventListener) oder AbstractOfflineCatalog.requestPurchaseLicense(Video, EventListener) um eine neue Lizenz abzurufen. Hinweis: Das Gerät muss online sein, um eine neue Lizenz zu erwerben.

Lokale Videos abspielen

  • Sie erhalten einen Ausnahmefehler, wenn Sie versuchen, MP4-Videos abzuspielen, die im Ressourcenordner der Anwendung (/res/raw) gespeichert sind. Die Problemumgehung besteht darin, Ihre MP4-Videos in den Asset-Ordner der Anwendung zu verschieben, wenn Sie lokale Videos wiedergeben möchten.

Wiedergabelisten mit DRM und klaren Inhalten

  • Beim nativen SDK für Android v6.17.0 und höher ist Brightcove ein Problem mit Wiedergabelisten aufgefallen, die sowohl verschlüsselten als auch unverschlüsselten Content enthalten. Wenn ein Benutzer während oder nach der Wiedergabe eines verschlüsselten Videos ein klares Video auswählt, gibt das SDK eine zurück IllegalStateException. Dies liegt daran, dass der Player keinen verschlüsselten Codec für eindeutige Inhalte verwenden kann.

    Für den Moment schlägt Brightcove die folgende Abhilfe vor: Um den Fehler zu vermeiden, können Sie den Player in eine von der Wiedergabelistenansicht getrennte Aktivität einfügen. Bei der Auswahl eines neuen Videos aus der Wiedergabeliste, unabhängig davon, ob es unverschlüsselt oder verschlüsselt ist, wird die vorhandene Playeraktivität zerstört und eine neue Playeraktivität erstellt. Dieser Workflow erstellt eine neue ExoPlayer-Instanz mit neuen Codec-Ressourcen.

Quellenauswahl

  • Wenn Ihr Video sowohl HTTP- als auch HTTPS-Quellen für WebVTT-Untertitel/-Untertitel enthält, gibt das Native SDK für Android möglicherweise nicht die HTTPS-Version zurück. Brightcove ist sich dieser Situation bewusst und wird in einer zukünftigen Version Abhilfe schaffen.

Untertitel

  • Die CC-Schaltfläche wird nicht in der Steuerleiste angezeigt und der Player lädt keine Textspuren, wenn Sie einem Video in Video Cloud Studio Textspuren zuweisen und die NETT Feldwert zu Untertitel. Die Problemumgehung besteht darin, die NETT Feldwert zu Untertitel schließen beim Zuweisen von Textspuren in Studio.

  • Wenn die Untertitel-/Audioeinstellungen den verfügbaren Platz zum Anzeigen der vollständigen Liste überschreiten, kann die Liste auf Android TV nicht gescrollt werden. Die Liste ist auf Android-Smartphones und -Tablets scrollbar.

Natives SDK für iOS

Chromecast

  • Das native SDK unterstützt die Chromecast-Warteschlangenbildung mit der Brightcove Cast Receiver-App nicht.

Live-Streams

  • Das Native SDK unterstützt keine Werbung mit HLS Live-Streams.

Offline-Wiedergabe

  • Mit iOS 12, Einstellen der kBCOVOfflineVideoManagerDisplayNameKey Feldwert mit Multibyte-Zeichen kann einen Download-Fehler verursachen. Dies liegt daran, dass Multibyte-Zeichen als längere Zeichenfolgenwerte codiert werden und iOS die Zeichenfolgenlänge auf 255 Byte beschränkt. Dieses Problem wurde Apple gemeldet.
  • Mit iOS 12 ist das didProgress Event wird möglicherweise nicht mehr ausgelöst, wenn Ihre App während des Downloads vom Hintergrund in den Vordergrund fortgesetzt wird. Sie werden feststellen, dass der Download-Status nicht mehr aktualisiert wird. Dieses Problem wurde Apple gemeldet.
  • Wenn die Wiedergabe desselben Offline-Videos zweimal hintereinander versucht wird, kann es beim Benutzer zu unerwarteten Netzwerkaktivitäten kommen. Die AVPlayer kann zur Wiedergabe der Online-Version des Videos wechseln. Ein Fehlerbericht wurde an Apple gesendet. Schritte zur Problemumgehung finden Sie im Zweimal dasselbe Offline-Video abspielen Abschnitt des Referenzdokuments.
  • Wenn Ihre App auf iOS 11.0 - 11.2 ausgerichtet ist, empfehlen wir keine gleichzeitigen Downloads, da das Anhalten- und Fortsetzen-Verhalten bei mehreren gleichzeitigen Downloads unzuverlässig ist. Das Problem wurde mit iOS 11.3 behoben.