Extraits de code utilisant le SDK natif pour iOS

Dans cette rubrique, vous trouverez une collection d'extraits de code qui peuvent vous être utiles comme référence lors du développement avec le SDK. Pour des solutions plus détaillées, consultez les exemples de lecteur iOS.

Table des matières

Publicité

Analytique
  • Google Analytics

Légendes

Sécurité du contenu (DRM)

Points de repère

Relecture

Listes de lecture

Coiffant

Commandes personnalisées pour AirPlay

Si vous utilisez les commandes Brightcove PlayerUI, tout est prêt. La fonctionnalité AirPlay est prête à l'emploi, permettant aux utilisateurs de diffuser des vidéos sur des écrans haute définition avec Apple TV.

Si vous utilisez des contrôles personnalisés, vous pouvez suivre ces étapes :

  1. En savoir plus sur AirPlay dans Documentation du développeur d'Apple pour AirPlay.

  2. Utilisez la allowsExternalPlayback propriété du contrôleur de lecture pour définir la allowsExternalPlayback propriété de l'AVPlayer :

  3. Configurez un contrôle de routeur AirPlay et gérez sa sélection. Pour plus de détails, voir Présentation d'AirPlay d'Apple document.

Référence

Pour plus de détails, consultez le Contrôleur de lecture BCOV Documentation.

Personnaliser le bouton des sous-titres codés

Les Exemple de code BCOVPlayerUI vous montre comment personnaliser le lecteur Brightcove lors de l'utilisation du SDK natif pour iOS. Pour plus de détails, consultez le Personnalisation des commandes PlayerUI section du document de référence du SDK natif.

Pour personnaliser le bouton de sous-titres codés à l'aide de PlayerUI, procédez comme suit :

  1. Commencez par le Application de lecture vidéo de base.

  2. Remplacez vos valeurs pour la clé de stratégie, l'identifiant de compte et l'identifiant vidéo. Sélectionnez une vidéo de votre compte qui contient des pistes de texte.

  3. Configurez la vue du lecteur avec une disposition VOD standard :

  4. Le closedCaptionButton est déclaré comme a BCOVPUIButton, qui est une sous-classe de UIButton et ajoute trois méthodes supplémentaires de personnalisation. Chaque fois que vous personnalisez les contrôles BCOVPlayerUI, vous devez utiliser les API Native Player partout où elles sont disponibles. Votre code personnalisé devrait ressembler à ceci :

Affichage du contenu FairPlay sur un écran externe

Lorsqu'un écran externe est connecté à un appareil iOS à l'aide d'un adaptateur AV et d'un câble HDMI, le comportement par défaut est de refléter l'écran iOS. L'exception à cette règle est lorsque vous utilisez une vidéo protégée par FairPlay, qu'Apple empêche de mettre en miroir (WWDC 2015, Session 502).

Pour afficher des vidéos protégées par FairPlay, définissez les propriétés AVPlayer exposées via le contrôleur de lecture Brightcove pour permettre la lecture de la vidéo FairPlay sur un écran externe. La vidéo est lue en mode plein écran. Voici un exemple de définition de ces propriétés :

Référence

Pour plus de détails, consultez le Contrôleur de lecture BCOV Documentation.

Google Analytics

Si vous utilisez le lecteur Brightcove et la classe de catalogue, les analyses vidéo seront automatiquement collectées et apparaîtront dans votre module Video Cloud Analytics. Pour des métriques supplémentaires, vous pouvez ajouter Google Analytics à votre application.

Pour intégrer Google Analytics à votre application, procédez comme suit :

  1. Consultez le document de Google pour Ajoutez des analyses à votre application iOS.
  2. Voici une façon d'utiliser Google Analytics pour suivre la lecture de vidéos à l'aide du SDK Firebase de Google :

 

Limiter le débit

Vous ne pouvez pas contrôler quelle source (rendu) du manifeste HLS est sélectionnée par le AVPlayer , mais vous pouvez limiter le débit de lecture. Cela empêche le lecteur d'utiliser des sources (rendus) avec un débit supérieur au débit spécifié.

Met le preferredPeakBitRate à la limite souhaitée, en bits par seconde, de la consommation de bande passante du réseau pour le AVPlayerItem .

Utilisez l'une des déclarations suivantes :

Boucler une vidéo

Dans certains cas, vous souhaiterez peut-être qu'une vidéo soit rejouée automatiquement. Pour ce faire, vous pouvez obtenir l'événement de cycle de vie "fin de la vidéo", rechercher au début et rejouer.

Ce code suppose que vous avez défini le délégué du playbackController sur l'objet avec cette méthode :

Gérer les vidéos dans une playlist

Une façon de gérer une liste de lecture de vidéos consiste à stocker les objets vidéo dans une table. Lorsque l'utilisateur sélectionne une vidéo dans le tableau, la ligne du tableau contiendra l'objet vidéo.

Voici un aperçu de son fonctionnement :

  1. Récupérez une liste de lecture de votre compte.

  2. Réinitialisez les conteneurs qui stockent les informations relatives aux vidéos de la liste de lecture actuelle.

  3. Lorsque la vue tabulaire est sélectionnée, l'index de la ligne est utilisé pour créer un nouveau videoDictionary. Ensuite, demandez au dictionnaire pour la vidéo. Si la vidéo n'est pas nulle, chargez la vidéo dans le playbackController.

Pour travailler avec des listes de lecture, vous pouvez stocker la liste de lecture dans un autre objet tel qu'un tableau. En fonction de l'interaction de l'utilisateur, vous pouvez parcourir les indices de l'objet et sélectionner la vidéo appropriée.

Valeurs de progression des médias

Pendant la lecture multimédia, les valeurs signalées à la méthode de délégué de progression du SDK du lecteur peuvent inclure une valeur initiale d'infini négatif et une valeur finale d'infini positif. Ces valeurs sont utilisées lors du traitement des annonces pré-roll et post-roll.

Si ces valeurs ne sont pas importantes pour vous ou interfèrent avec votre propre suivi de progression, elles peuvent être facilement ignorées avec une instruction conditionnelle comme celle-ci :

Référence

Pour plus de détails, consultez le Contrôleur de lecture BCOV Documentation.

Modification des sous-titres par programmation

Vous pouvez définir les sous-titres à tout moment pendant la lecture, après le Ready l'événement a été reçu. Pour ce faire, vous pouvez utiliser le BCOVPlaybackControllerDélégué.

Voici un exemple de définition de la langue des sous-titres en espagnol :

Pagination avec l'API de lecture

Lors de la récupération de votre contenu Video Cloud à partir de l'API de lecture, vous pouvez implémenter la pagination pour une liste de lecture.

Pour parcourir un ensemble de vidéos dans une playlist, utilisez les paramètres d'URL de requête suivants :

  • limit - définit le nombre de vidéos à renvoyer depuis l'API Playback
  • offset - définit le nombre de vidéos à ignorer dans une playlist depuis l'API Playback

Cet exemple renvoie 6 vidéos en commençant par la 10e vidéo de la playlist :

Ajout de points de repère par programme

Les clients de Video Cloud peuvent ajouter des points de repère à une vidéo à l'aide de Video Cloud Studio, comme indiqué dans le Ajout de points de repère aux vidéos document.

Vous pouvez également ajouter des points de repère à votre vidéo par programmation. Le code ci-dessous ajoute des points de repère d'intervalle trimestriel à la vidéo renvoyée par l'API de lecture :

 

Notez que la valeur de your cue point type peut être n'importe quelle valeur de chaîne que vous voulez, tant que vous n'utilisez aucun des Plugins iOS. Pour plus de détails, consultez le Référence du protocole BCOVCuePoint document.

Si vous utilisez des points de repère avec le plugin IMA, apprenez-en plus à ce sujet dans le Règles relatives aux annonces VAST et VMAP/côté serveur section du plug-in IMA pour le SDK natif pour iOS notes. Les Exemple d'application IMA vous montre la valeur requise pour les points de repère publicitaire IMA.

Le code ci-dessous écoute vos points de repère et affiche un message :

Les références

Pour plus de détails, voir les points suivants :

Retrait du lecteur

Il peut arriver que vous souhaitiez supprimer le lecteur et la vue.

Désallouer le contrôleur de vue qui a la propriété d'un BCOVPlaybackController libérera également le contrôleur de lecture. Pour ce faire, supprimez la vue du lecteur de sa vue et définissez le pointeur de son contrôleur de lecture sur nil.

Voici un exemple de code :

Réglage du comportement audio

La session audio gère le comportement audio au niveau de l'application. Vous pouvez choisir parmi plusieurs catégories et paramètres de session audio pour personnaliser le comportement audio de votre application.

Choisissez la meilleure catégorie de session audio pour votre application. Pour plus de détails, consultez la documentation d'Apple :

Échantillon de base

Pour notre échantillon de base, nous utilisons AVAudioSessionCategoryPlayback. Cela joue le son même lorsque l'écran est verrouillé et avec le commutateur Sonnerie/Silence réglé sur silencieux. Pour rester simple, nous mettons le code pour cela dans l'App Delegate.

Mixer avec d'autres sons

Vous souhaiterez peut-être autoriser l'écoute du son d'autres applications lorsque le son de votre application est coupé. Pour ce faire, vous pouvez configurer le AVAudioSession dans le contrôleur de vue qui a accès à votre AVPlayer.

Pour plus de détails, consultez le mélangerAvecAutres option de catégorie.

Réglage de la vitesse de lecture

Pour contrôler la vitesse de lecture, vous pouvez régler le rate propriété sur le AVPlayer classe exposée sur la session.

Par défaut, la vitesse de lecture ne peut être définie qu'à intervalles réguliers (0,50, 0,67, 1,0, 1,25, 1,50 et 2,0). En définissant l'algorithme AudioTimePitchAlgorithm, vous pouvez utiliser des valeurs de débit plus précises (comme 1,7). Pour plus de détails, voir ceci discussion sur le débordement de pile.

avPlayerItem.audioTimePitchAlgorithm = AVAudioTimePitchAlgorithmVarispeed;

Pour un BCOVPlaybackSession , votre code ressemblerait à ceci :

 

Paramétrer le mode lunettes VR pour les vidéos 360°

Lors de la lecture d'une vidéo à 360°, les utilisateurs peuvent sélectionner le bouton Vidéo 360 sur la barre de contrôle pour passer en mode Lunettes VR. Vous pouvez également le faire par programmation, avant le début de la lecture. Vous pouvez le faire en mettant à jour le BCOVPlaybackController protocole viewProjection propriété comme suit :

 

Changer la couleur de fond

Lors de la lecture d'une vidéo en mode portrait, vous remarquerez peut-être une bordure noire en haut et en dessous du lecteur. La vue du lecteur correspond à la taille de l'écran, mais la vidéo n'occupe qu'une petite partie du centre de la vue du lecteur. Les parties visibles autour de la vidéo constituent l'arrière-plan du calque du lecteur.

C'est normal AVPlayer comportement. Il réduit votre vidéo pour qu'elle s'adapte à l'intérieur du calque du lecteur, et le reste est l'arrière-plan du calque du lecteur.

Vous pouvez modifier l'arrière-plan du calque du lecteur avec le code suivant :

 

Définir la couleur d'arrière-plan sur blanc devrait ressembler à ceci :

Couleur de l'arrière-plan
Couleur de fond personnalisée