Codeschnipsel mit dem Native SDK für iOS

In diesem Thema finden Sie eine Sammlung von Codeausschnitten, die Sie bei der Entwicklung mit dem SDK als Referenz verwenden können. Ausführlichere Lösungen finden Sie in den iOS-Player-Beispielen.

Inhaltsverzeichnis

Werbung

Analytik

Bildunterschriften

Inhaltssicherheit (DRM)

Cue-Punkte

Wiedergabe

Wiedergabelisten

Styling

Benutzerdefinierte Steuerelemente für AirPlay

Wenn Sie die Brightcove PlayerUI Steuerelemente verwenden, sind Sie startklar. Die AirPlay-Funktionalität ist sofort einsatzbereit und ermöglicht es Benutzern, Videos mit Apple TV auf High-Definition-Displays zu streamen.

Wenn Sie benutzerdefinierte Steuerelemente verwenden, können Sie die folgenden Schritte ausführen:

  1. Erfahren Sie mehr über AirPlay in Entwicklerdokumentation von Apple für AirPlay.

  2. Verwenden Sie die allowsExternalPlayback Eigenschaft des Playback-Controllers, um die allowsExternalPlayback Eigenschaft des AVPlayers festzulegen:

  3. Richten Sie eine AirPlay-Router-Steuerung ein und handhaben Sie ihre Auswahl. Einzelheiten finden Sie unter Apples AirPlay-Übersicht dokumentieren.

Referenz

Einzelheiten finden Sie im BCOVPlaybackController Dokumentation.

Anpassen der Schaltfläche für geschlossene Untertitel

Die BCOVPlayerUI-Beispielcode zeigt Ihnen, wie Sie den Brightcove-Player anpassen, wenn Sie das Native SDK für iOS verwenden. Weitere Informationen finden Sie im Anpassen der PlayerUI-Steuerelemente Abschnitt des Native SDK-Referenzdokuments.

Gehen Sie folgendermaßen vor, um die Untertitel-Schaltfläche mithilfe der PlayerUI anzupassen:

  1. Beginnen Sie mit dem Einfache Videowiedergabe-App.

  2. Ersetzen Sie Ihre Werte für Richtlinienschlüssel, Konto-ID und Video-ID. Wählen Sie in Ihrem Konto ein Video mit Textspuren aus.

  3. Richten Sie die Player-Ansicht mit einem Standard-VOD-Layout ein:

  4. Der closedCaptionButton ist als a deklariert BCOVPUIButton, was eine Unterklasse von ist UIButton und drei zusätzliche Methoden zur Anpassung hinzufügt. Wann immer Sie BCOVPlayerUI-Steuerelemente anpassen, sollten Sie die nativen Player-APIs verwenden, wo immer sie verfügbar sind. Ihr benutzerdefinierter Code sollte ungefähr so aussehen:

Anzeige von FairPlay-Inhalten auf einem externen Bildschirm

Wenn ein externes Display über einen AV-Adapter und ein HDMI-Kabel an ein iOS-Gerät angeschlossen ist, wird standardmäßig der iOS-Bildschirm gespiegelt. Ausgenommen hiervon ist die Verwendung von FairPlay-geschützten Videos, deren Spiegelung von Apple verhindert wird (WWDC 2015, Sitzung 502).

Um FairPlay-geschützte Videos anzuzeigen, legen Sie die AVPlayer-Eigenschaften fest, die über den Brightcove-Wiedergabe-Controller angezeigt werden, damit FairPlay-Videos auf einem externen Display wiedergegeben werden können. Das Video wird im Vollbildmodus abgespielt. Hier ist ein Beispiel für das Festlegen dieser Eigenschaften:

Referenz

Einzelheiten finden Sie im BCOVPlaybackController Dokumentation.

Google Analytik

Wenn Sie den Brightcove-Player und die Katalogklasse verwenden, werden Videoanalysen automatisch erfasst und in Ihrem Video Cloud-Analysemodul angezeigt. Für zusätzliche Messwerte können Sie Ihrer App Google Analytics hinzufügen.

Gehen Sie wie folgt vor, um Google Analytics in Ihre App zu integrieren:

  1. Überprüfen Sie das Dokument von Google, um Fügen Sie Ihrer iOS-App Analytics hinzu.
  2. Hier ist eine Möglichkeit, wie Sie Google Analytics verwenden können, um die Videowiedergabe mit dem Firebase SDK von Google zu verfolgen:

 

Begrenzung der Bitrate

Sie können nicht steuern, welche Quelle (Wiedergabeversion) im HLS-Manifest von der ausgewählt wird AVPlayer , aber Sie können eine Bitraten-Obergrenze für die Wiedergabe festlegen. Dadurch wird verhindert, dass der Player Quellen (Wiedergaben) mit einer Bitrate über der angegebenen Bitrate verwendet.

Stellen Sie die preferredPeakBitRate bis zum gewünschten Grenzwert in Bits pro Sekunde des Netzwerkbandbreitenverbrauchs für den gegebenen AVPlayerItem .

Verwenden Sie eine der folgenden Deklarationen:

Ein Video loopen

In einigen Fällen möchten Sie möglicherweise, dass ein Video automatisch wiedergegeben wird. Dazu können Sie das Lebenszyklusereignis "Ende des Videos" abrufen, zum Anfang suchen und erneut abspielen.

Dieser Code geht davon aus, dass Sie den Delegat des PlaybackControllers mit dieser Methode auf das Objekt gesetzt haben:

Verwalten von Videos in einer Playlist

Eine Möglichkeit, eine Wiedergabeliste mit Videos zu verwalten, besteht darin, die Videoobjekte in einer Tabelle zu speichern. Wenn der Benutzer ein Video aus der Tabelle auswählt, enthält die Tabellenzeile das Videoobjekt.

Hier ist eine Übersicht, wie es funktioniert:

  1. Rufen Sie eine Playlist von Ihrem Konto ab.

  2. Initialisieren Sie die Container, die Informationen zu den Videos in der aktuellen Playlist speichern, neu.

  3. Wenn die Tabellenansicht ausgewählt ist, wird der Index der Zeile verwendet, um eine neue videoDictionary. Als nächstes fragen Sie das Wörterbuch nach dem Video. Wenn das Video nicht null ist, laden Sie das Video in die playbackController.

Um mit Playlists zu arbeiten, können Sie die Playlist in einem anderen Objekt wie einer Tabelle speichern. Basierend auf der Benutzerinteraktion können Sie durch die Indizes des Objekts navigieren und das entsprechende Video auswählen.

Medienfortschrittswerte

Während der Medienwiedergabe können die der Player SDK-Fortschrittsdelegatenmethode gemeldeten Werte einen Anfangswert von negativ unendlich und einen Endwert von positiv unendlich umfassen. Diese Werte werden bei der Verarbeitung von Pre-Roll- und Post-Roll-Anzeigen verwendet.

Wenn diese Werte für Sie nicht wichtig sind oder Ihre eigene Fortschrittsverfolgung stören, können sie mit einer bedingten Anweisung wie dieser einfach ignoriert werden:

Referenz

Einzelheiten finden Sie im BCOVPlaybackController Dokumentation.

Untertitel programmatisch ändern

Sie können die Untertitel jederzeit während der Wiedergabe einstellen, nach dem Ready Veranstaltung eingegangen ist. Dazu können Sie die BCOVPlaybackControllerDelegate.

Hier ist ein Beispiel für die Einstellung der Untertitelsprache auf Spanisch:

Paging mit der Playback API

Beim Abrufen Ihres Video Cloud-Inhalts von der Wiedergabe-API können Sie das Paging für eine Wiedergabeliste implementieren.

Um durch eine Reihe von Videos in einer Playlist zu blättern, verwenden Sie die folgenden Anforderungs-URL-Parameter:

  • limit - definiert die Anzahl der Videos, die von der Playback-API zurückgegeben werden sollen
  • offset - legt die Anzahl der Videos fest, die in einer Wiedergabeliste von der Playback-API übersprungen werden sollen

In diesem Beispiel werden 6 Videos zurückgegeben, beginnend mit dem 10. Video in der Playlist:

Programmgesteuertes Hinzufügen von Cue-Punkten

Kunden von Video Cloud können einem Video mithilfe von Video Cloud Studio Cue-Punkte hinzufügen, wie in der Hinzufügen von Cue-Punkten zu Videos dokumentieren.

Sie können Ihrem Video auch programmgesteuert Cue-Points hinzufügen. Der folgende Code fügt dem von der Playback API zurückgegebenen Video vierteljährliche Cue-Points hinzu:

 

Beachten Sie, dass der Wert von your cue point type kann ein beliebiger String-Wert sein, solange Sie keinen der iOS-Plugins. Einzelheiten finden Sie im BCOVCuePoint-Protokollreferenz dokumentieren.

Wenn Sie Cue-Points mit dem IMA-Plugin verwenden, erfahren Sie mehr darüber im VAST- und VMAP-/serverseitige Anzeigenregeln Abschnitt des IMA-Plug-ins für das Native SDK für iOS-Notizen. Die IMA-Beispiel-App zeigt Ihnen den für IMA-Anzeigen-Cue-Points erforderlichen Wert an.

Der folgende Code lauscht auf Ihre Cue-Punkte und zeigt eine Meldung an:

Verweise

Weitere Informationen finden Sie in den folgenden Punkten:

Entfernen des Players

Es kann Fälle geben, in denen Sie den Player und die Ansicht entfernen möchten.

Wenn Sie die Zuweisung des View-Controllers aufheben, der Eigentümer eines ist, BCOVPlaybackController wird auch die Zuordnung des Playback-Controllers aufgehoben. Entfernen Sie dazu die Player-Ansicht aus ihrer Übersicht und setzen Sie ihren Wiedergabe-Controller-Zeiger auf nil.

Hier ist ein Codebeispiel:

Audioverhalten einstellen

Die Audiositzung behandelt das Audioverhalten auf App-Ebene. Sie können aus mehreren Audiositzungskategorien und -einstellungen wählen, um das Audioverhalten Ihrer App anzupassen.

Wählen Sie die beste Audiositzungskategorie für Ihre App. Weitere Informationen finden Sie in der Dokumentation von Apple:

Basisbeispiel

Für unser Basismuster verwenden wir AVAudioSessionCategoryPlayback. Dies spielt auch dann Audio ab, wenn der Bildschirm gesperrt ist und der Schalter Klingeln/Stumm auf lautlos eingestellt ist. Der Einfachheit halber haben wir den Code dafür im App Delegate hinterlegt.

Mit anderem Audio mischen

Möglicherweise möchten Sie zulassen, dass Audio von anderen Apps gehört wird, wenn das Audio in Ihrer App stummgeschaltet ist. Dazu können Sie die AVAudioSession im Ansichtscontroller, der Zugriff auf Ihr aktuelles hat AVPlayer.

Einzelheiten finden Sie im mixWithOthers Kategorie Option.

Einstellen der Wiedergaberate

Um die Wiedergaberate zu steuern, können Sie die rate Eigentum auf der AVPlayer Klasse in der Sitzung ausgesetzt.

Standardmäßig kann die Abspielrate nur in regelmäßigen Abständen (0,50, 0,67, 1,0, 1,25, 1,50 und 2,0) eingestellt werden. Durch die Einstellung des AudioTimePitch-Algorithmus können Sie detailliertere Ratenwerte verwenden (z. B. 1,7). Weitere Details finden Sie hier Stackoverflow-Diskussion.

avPlayerItem.audioTimePitchAlgorithm = AVAudioTimePitchAlgorithmVarispeed;

Für a BCOVPlaybackSession würde Ihr Code ungefähr so aussehen:

 

Einstellen des VR-Brillenmodus für 360°-Videos

Beim Abspielen eines 360°-Videos können Benutzer die Schaltfläche Video 360 in der Steuerleiste auswählen, um in den VR-Brillenmodus zu wechseln. Sie können dies auch programmgesteuert tun, bevor die Wiedergabe beginnt. Sie können dies tun, indem Sie die BCOVPlaybackController Protokolle viewProjection Eigentum wie folgt:

 

Ändern der Hintergrundfarbe

Wenn Sie ein Video im Hochformat abspielen, bemerken Sie möglicherweise einen schwarzen Rand oberhalb und unterhalb des Players. Die Player-Ansicht hat die Größe des Bildschirms, aber das Video nimmt nur einen kleinen Teil der Mitte der Player-Ansicht ein. Die sichtbaren Teile um das Video herum sind der Hintergrund der Player-Ebene.

Das ist normal AVPlayer Verhalten. Es verkleinert Ihr Video, damit es in die Player-Ebene passt, und der Rest ist der Hintergrund der Player-Ebene.

Sie können den Hintergrund der Player-Ebene mit dem folgenden Code ändern:

 

Die Einstellung der Hintergrundfarbe auf Weiß sollte so aussehen:

Hintergrundfarbe
Benutzerdefinierte Hintergrundfarbe