AliPlayerKit propose un ensemble complet d'API pour contrôler le comportement du lecteur. Cette rubrique détaille les principales API d'AliPlayerKit sur iOS.
AliPlayerKit inclut des commentaires de code détaillés pour toutes les API principales, telles que les classes et les méthodes. Dans Xcode, vous pouvez consulter ces commentaires avec l'aide rapide (Option + Clic) afin d'accélérer le développement. Cela rend également les API plus compatibles avec les outils de programmation assistée par IA.
Présentation des classes principales
|
Nom de la classe |
Type |
Responsabilité |
Cycle de vie |
|
|
Point d'entrée global |
Initialisation du SDK, configuration globale, gestion de l'usine et du préchargeur |
Cycle de vie de l'application |
|
|
Conteneur de vue |
Gestion de la vue du lecteur, hôte du système de slots |
Identique à UIView |
|
|
Contrôleur de lecture |
Contrôle de la lecture, gestion des états, coordination des stratégies |
Libération manuelle via |
|
|
Modèle de données |
Encapsule la source vidéo et les paramètres de lecture |
Objet valeur, sans cycle de vie indépendant |
|
|
Magasin d'état |
Accès en lecture seule à l'état actuel du lecteur |
Suit le contrôleur |
|
|
État de la vue |
Accès en lecture seule à l'état de la couche UI (plein écran, visibilité de la barre de contrôle) |
Suit AliPlayerView |
|
|
Gestionnaire de slots |
Inscription des slots, contrôle de la visibilité, gestion au niveau des éléments |
Suit AliPlayerView |
|
|
Gestionnaire de stratégie |
Inscription, démarrage, arrêt et réinitialisation des stratégies |
Suit le contrôleur |
|
|
Registre de stratégie |
Gestion de l'usine de stratégie par défaut globale (singleton) |
Cycle de vie de l'application |
|
|
Center de journalisation |
Sortie des journaux et gestion des observateurs (singleton) |
Cycle de vie de l'application |
|
|
Gestion de la localisation |
Support multilingue et injection de Provider (singleton) |
Cycle de vie de l'application |
AliPlayerKit (API globales)
AliPlayerKit est une classe de paramètres globaux destinée à l'initialisation et à la configuration du SDK. Vous ne pouvez pas instancier cette classe. Toutes ses méthodes sont des méthodes de classe.
Méthodes d'initialisation
|
Méthode |
Paramètre |
Valeur de retour |
Description |
|
|
- |
void |
Initialise le SDK. |
|
|
- |
BOOL |
Vérifie si le SDK est initialisé. |
|
|
Bloc OnGlobalInitBlock |
void |
Définit un rappel de configuration personnalisé après la finalisation de l'initialisation globale. Appelez cette méthode avant |
Requête d'état et informations de version
|
Méthode |
Paramètre |
Valeur de retour |
Description |
|
|
- |
NSString * |
Récupère le numéro de version de PlayerKit. |
|
|
- |
NSString * |
Récupère le numéro de version du SDK AliPlayer sous-jacent. |
Configurations de débogage
|
Méthode |
Paramètre |
Valeur de retour |
Description |
|
|
BOOL enabled |
void |
Active ou désactive le mode débogage. |
|
|
- |
BOOL |
Vérifie si le mode débogage est activé. |
|
|
BOOL enabled |
void |
Active ou désactive le panneau de journalisation. Cette fonctionnalité est réservée au débogage. |
|
|
- |
BOOL |
Vérifie si le panneau de journalisation est activé. |
Configurations des journaux
|
Méthode |
Paramètre |
Valeur de retour |
Description |
|
|
Niveau LogLevel |
void |
Définit le niveau de journalisation. Les journaux inférieurs à ce niveau sont ignorés. Le niveau par défaut est Info. |
|
|
- |
LogLevel |
Récupère le niveau de journalisation actuel. |
|
|
BOOL enable |
void |
Active ou désactive la sortie des journaux dans la console. |
|
|
- |
BOOL |
Vérifie si la sortie des journaux dans la console est activée. |
Usine de lecteur
|
Méthode |
Paramètre |
Description |
|
|
id<PlayerFactory> factory |
Définit une usine de lecteur personnalisée. Transmettez |
|
|
- |
Récupère l'usine de lecteur actuelle. |
Préchargement
|
Méthode |
Paramètre |
Description |
|
|
id<PlayerPreloader> preloader |
Définit un préchargeur personnalisé. Transmettez |
|
|
- |
Récupère le préchargeur actuel. |
Gestion du cache
|
Méthode |
Description |
|
|
Efface le cache multimédia local du lecteur. Appelez cette méthode après |
Internationalisation
|
Méthode |
Paramètre |
Description |
|
|
NSString * languageCode |
Spécifie manuellement la langue. Les langues prises en charge sont |
|
|
id<LocaleProvider> provider |
Injecte un fournisseur de localisation personnalisé. Cette option a la priorité la plus élevée. |
|
|
- |
Réinitialise la langue pour qu'elle suive la langue du système. |
|
|
- |
Récupère le code de langue actuel. |
AliPlayerView (API de vue)
AliPlayerView est le conteneur de vue du lecteur. Il gère la liaison du contrôleur et le système de slots. La vue de rendu est créée et gérée par le PlayerSurfaceSlot interne.
Propriétés
|
Propriété |
Type |
Description |
|
controller |
AliPlayerController * |
Le contrôleur de lecteur associé. |
|
viewState |
PlayerViewState * |
L'état de l'interface utilisateur conservé entre les vidéos, comme le plein écran et la visibilité de la barre de contrôle. |
|
slotManager |
SlotManager * |
Le gestionnaire de slots. Vous pouvez le préconfigurer avant l'attachement. |
|
fullscreenTransition |
id<FullscreenTransition> |
L'implémentation de l'animation de transition en plein écran. Par défaut, une solution de rotation de fenêtre indépendante est utilisée. |
|
onBackPressed |
void (^)(void) |
Le rappel pour l'événement du bouton Retour. |
Le rappel onBackPressed est déclenché en mode non plein écran. En mode plein écran, le lecteur gère automatiquement l'opération de retour en quittant le plein écran. Si ce rappel n'est pas défini, le lecteur tente un comportement de navigation par défaut, tel que pop ou dismiss, via la chaîne de répondeurs.
Liaison du contrôleur
|
Méthode |
Paramètre |
Description |
|
|
AliPlayerController * controller |
Lie le contrôleur et active le système de slots. |
|
|
- |
Détache le contrôleur sans le détruire. |
Quand appeler :
attach:: Le composant est attaché après que le contrôleur a appeléconfigure:. Le système de slots est ensuite automatiquement construit en fonction de la configuration de slotManager.detach: Appelez cette méthode lorsque la vue est sur le point d'être détruite ou lorsque vous devez lier un autre contrôleur.
AliPlayerController (API du contrôleur)
AliPlayerController est le contrôleur de lecture. Il sert de point d'entrée unifié pour les opérations de lecture et encapsule la logique de création, de configuration et de contrôle du lecteur.
Propriétés
|
Propriété |
Type |
Description |
|
playerModel |
AliPlayerModel * |
Le modèle de configuration de lecture actuel. |
|
playerState |
PlayerState |
L'état actuel du lecteur. |
|
currentPosition |
NSInteger |
La position de lecture actuelle en millisecondes. |
|
duration |
NSInteger |
La durée totale de la vidéo en millisecondes. |
|
stateStore |
PlayerStateStore * |
Le magasin d'état. |
|
strategyManager |
StrategyManager * |
Le gestionnaire de stratégie. |
|
lifecycleStrategy |
id<PlayerLifecycleStrategy> |
La stratégie de cycle de vie actuelle. |
|
autoLifecycleManagement |
BOOL |
Indique s'il faut gérer automatiquement le cycle de vie en premier plan et en arrière-plan. Valeur par défaut : YES. |
|
controlsVisibilityLocked |
BOOL |
L'indicateur de verrouillage pour la visibilité de la barre de contrôle. |
Lorsque controlsVisibilityLocked est défini sur YES, la requête setControlsVisible:NO est ignorée et la barre de contrôle reste visible. Cela est utilisé pour les scénarios interactifs, tels que le glissement de la barre de progression, où la barre de contrôle doit toujours être affichée.
Constructeurs
|
Méthode |
Paramètre |
Description |
|
|
- |
Crée un contrôleur avec la stratégie de cycle de vie par défaut. |
|
|
|
Crée un contrôleur avec une stratégie de cycle de vie personnalisée. |
Configuration et contrôle de la lecture
|
Méthode |
Paramètre |
Description |
|
|
AliPlayerModel * model |
Configure le lecteur et prépare la lecture. |
|
|
- |
Démarre ou reprend la lecture. |
|
|
- |
Met la lecture en pause. |
|
|
- |
Alterne entre la lecture et la pause. |
|
|
- |
Redémarre la lecture depuis le début. |
|
|
- |
Arrête la lecture. |
|
|
NSInteger position (millisecondes) |
Effectue une recherche vers une position spécifique. |
|
|
float rate |
Définit la vitesse de lecture. 1,0 correspond à la vitesse normale. |
|
|
BOOL loop |
Définit si la lecture doit être en boucle. |
|
|
BOOL muted |
Définit si l'audio doit être coupé. |
|
|
MirrorMode mirrorMode |
Définit le mode miroir. |
|
|
ScaleMode scaleMode |
Définit le mode de mise à l'échelle. |
|
|
RotateMode rotateMode |
Définit l'angle de rotation. |
|
|
TrackQuality * quality |
Change la qualité vidéo. |
|
|
- |
Prend une capture d'écran de l'image vidéo actuelle. |
Contrôle de l'interface utilisateur
|
Méthode |
Paramètre |
Valeur de retour |
Description |
|
|
|
|
Définit la visibilité de la barre de contrôle. |
|
|
|
|
Définit le mode plein écran avec animation. |
|
|
|
|
Définit le mode plein écran avec animation facultative. |
Méthodes de cycle de vie
|
Méthode |
Paramètre |
Valeur de retour |
Description |
|
|
- |
|
Reprend la lecture. Appelez cette méthode lors du retour depuis l'arrière-plan. |
|
|
- |
|
Met la lecture en pause. Appelez cette méthode lors du passage en arrière-plan. |
|
|
- |
|
Détruit le lecteur et libère toutes les ressources. |
Délégués de notification
|
Méthode |
Paramètre |
Valeur de retour |
Description |
|
|
|
|
Ajoute un délégué de notification. Il est détenu par une référence faible. |
|
|
|
|
Supprime un délégué de notification. |
AliPlayerModel (API du modèle)
AliPlayerModel est le modèle de configuration du lecteur. Il regroupe toutes les informations de configuration nécessaires à la lecture.
Propriétés
|
Propriété |
Type |
Valeur par défaut |
Description |
|
|
|
- |
La source de données vidéo. Ce paramètre est obligatoire. |
|
|
|
|
Le type de scénario de lecture. |
|
|
|
|
L'URL de la vignette. |
|
|
|
|
Le titre de la vidéo. |
|
|
|
|
Indique si la lecture automatique est activée. |
|
|
|
|
L'identifiant de suivi pour la surveillance de la qualité de lecture. |
|
|
|
|
La position de départ en millisecondes. |
|
|
|
|
Indique si le décodage matériel est activé. |
|
|
|
|
Indique si la mise en veille de l'écran est autorisée. |
|
|
|
|
Indique si les captures d'écran et l'enregistrement d'écran sont désactivés. |
|
|
|
|
Le rappel de configuration personnalisée au niveau de l'instance. |
Méthodes de création
|
Méthode |
Paramètre |
Valeur de retour |
Description |
|
|
|
|
Crée un modèle à partir d'une source vidéo. Il s'agit de l'initialiseur désigné. |
Système de notification
AliPlayerKit utilise un modèle Dispatcher + Delegate pour la communication des événements entre les composants. Chaque AliPlayerController dispose d'une instance Dispatcher indépendante, ce qui empêche les événements provenant de différentes instances de lecteur de s'interférer. Tous les rappels sont distribués sur le thread principal.
PlayerNotificationDelegate (Délégué de notification du lecteur)
Un protocole pour les rappels de changement d'état du lecteur. Toutes les méthodes sont @optional.
État de lecture
|
Méthode |
Paramètre |
Description |
|
|
|
L'état du lecteur change. |
|
|
|
Le lecteur est prêt pour la lecture. |
|
|
- |
La première image est affichée. |
|
|
- |
La lecture est terminée. |
Progression de la lecture
|
Méthode |
Paramètre |
Description |
|
|
position, duration, bufferedPosition (millisecondes) |
Signale la progression de la lecture à intervalles réguliers. |
Erreurs et instantanés
|
Méthode |
Paramètre |
Description |
|
|
|
Une erreur de lecture s'est produite. |
|
|
|
Un instantané a été capturé. |
Informations vidéo
|
Méthode |
Paramètre |
Description |
|
|
|
Les dimensions de la vidéo changent. |
État de l'interface utilisateur
|
Méthode |
Paramètre |
Description |
|
|
|
L'état plein écran change. |
|
|
|
La visibilité de la barre de contrôle change. |
État de chargement
|
Méthode |
Paramètre |
Description |
|
|
- |
La mise en mémoire tampon commence. |
|
|
- |
La mise en mémoire tampon se termine. |
|
|
|
La progression de la mise en mémoire tampon est mise à jour. |
Mode d'affichage
|
Méthode |
Paramètre |
Description |
|
|
|
Le mode miroir change. |
|
|
|
Le mode de mise à l'échelle change. |
|
|
|
Le mode de rotation change. |
Piste
|
Méthode |
Paramètre |
Description |
|
|
|
Les informations sur les pistes disponibles sont prêtes. |
|
|
|
La piste est commutée. |
GestureNotificationDelegate (Délégué de notification des gestes)
Un protocole pour les rappels d'événements d'interaction gestuelle. Toutes les méthodes sont @optional. Les événements sont diffusés par GestureNotificationDispatcher.
Appui simple
|
Méthode |
Paramètre |
Description |
|
|
- |
Un geste d'appui simple est déclenché. Cela sert généralement à basculer la visibilité de la barre de contrôle. |
Appui long (vitesse de lecture)
|
Méthode |
Paramètre |
Description |
|
|
- |
Un appui long commence. Cela active la lecture en avance rapide. |
|
|
- |
Un appui long se termine. Cela rétablit la vitesse de lecture normale. |
Luminosité (glissement vertical gauche)
|
Méthode |
Paramètre |
Description |
|
|
|
La luminosité est en cours d'ajustement. |
|
|
- |
L'ajustement de la luminosité se termine. |
Volume (glissement vertical droit)
|
Méthode |
Paramètre |
Description |
|
|
|
Le volume est en cours d'ajustement. |
|
|
- |
L'ajustement du volume se termine. |
SlotActionNotificationDelegate (Délégué de notification des actions de slot)
Un protocole de notification pour les événements d'action entre les slots. Il permet de découpler les appels de méthode directs entre les slots. Toutes les méthodes sont @optional et sont distribuées de manière asynchrone sur le thread principal.
|
Méthode |
Paramètre |
Description |
|
|
- |
Demande de basculer la visibilité du menu des paramètres. Cela est généralement déclenché par |
|
|
- |
Demande d'afficher le panneau de sélection de la vitesse de lecture. Cela est généralement déclenché par |
|
|
- |
Demande d'afficher le panneau de sélection de la qualité vidéo. Cela est généralement déclenché par |
Protocoles du lecteur
AliPlayerKit définit les fonctionnalités principales et les contraintes comportementales du lecteur par le biais de protocoles.
MediaPlayer (protocole du lecteur)
Ce protocole définit l'interface d'exploitation principale du lecteur. Vous pouvez créer une instance à l'aide de PlayerFactory.
Propriétés
|
Propriété |
Type |
Description |
|
|
NSString * |
L'identifiant unique du lecteur. |
|
|
PlayerState |
L'état de lecture actuel. |
|
|
NSInteger |
La position actuelle en millisecondes. |
|
|
NSInteger |
La durée totale en millisecondes. |
|
|
float |
La vitesse de lecture actuelle. |
|
|
BOOL |
Indique si la lecture est en boucle. |
|
|
BOOL |
Indique si l'audio est en sourdine. |
|
|
MirrorMode |
Le mode miroir actuel. |
|
|
ScaleMode |
Le mode de mise à l'échelle actuel. |
|
|
RotateMode |
L'angle de rotation actuel. |
|
|
PlayerStateStore * |
Le magasin d'états. |
Contrôle de la lecture
|
Méthode |
Paramètre |
Description |
|
|
|
Définit la source de données vidéo. |
|
|
- |
Prépare de manière asynchrone les ressources du lecteur. |
|
|
- |
Démarre la lecture. |
|
|
- |
Met la lecture en pause. |
|
|
- |
Bascule entre la lecture et la pause. |
|
|
- |
Redémarre la lecture depuis le début. |
|
|
|
Effectue une recherche vers une position spécifique. |
|
|
- |
Arrête la lecture. |
|
|
- |
Détruit le lecteur et libère les ressources. |
Paramètres de lecture
|
Méthode |
Paramètre |
Description |
|
|
|
Définit la vitesse de lecture (de 0,5 à 2,0). |
|
|
|
Active ou désactive la lecture en boucle. |
|
|
|
Coupe le son de l'audio. |
|
|
|
Définit le mode miroir. |
|
|
|
Définit le mode de mise à l'échelle. |
|
|
|
Définit l'angle de rotation. |
|
|
|
Change la qualité vidéo. |
|
|
- |
Capture une image de la frame actuelle. |
PlayerLifecycleStrategy (protocole de stratégie de cycle de vie)
Ce protocole définit le comportement d'acquisition et de recyclage des instances de lecteur.
Méthodes
|
Méthode |
Paramètre |
Valeur de retour |
Description |
|
|
|
|
Injecte la fabrique de lecteurs. Cette méthode doit être appelée en premier. |
|
|
- |
|
Obtient une instance de lecteur. |
|
|
player, |
|
Recycle une instance de lecteur. |
|
|
- |
|
Libère toutes les instances mises en cache. |
|
|
|
|
Précharge un nombre spécifié d'instances dans le pool. |
|
|
|
|
Obtient un lecteur par ID. Cette méthode est spécifique à la stratégie IdScoped. |
|
|
player, uniqueId, force |
|
Recycle un lecteur par ID. Cette méthode est spécifique à la stratégie IdScoped. |
Implémentations de stratégies intégrées
|
Classe de stratégie |
Comportement |
Scénarios |
|
|
Crée une nouvelle instance à chaque fois et la détruit lors du recyclage. |
Lecture vidéo normale. |
|
|
Instance unique globale (singleton |
Lecture en liste, scénarios sensibles à la mémoire. |
|
|
Pool de réutilisation LIFO (dernier entré, premier sorti). |
Listes de vidéos courtes. |
|
|
Liaison par ID + éviction LRU (Least Recently Used). |
Préchargement de vidéos. |
FullscreenTransition (protocole de transition plein écran)
Ce protocole définit le comportement de transition pour l'entrée et la sortie du mode plein écran.
|
Méthode / Propriété |
Paramètre |
Description |
|
|
playerView, animated, completion |
Passe en mode plein écran. |
|
|
playerView, animated, completion |
Quitte le mode plein écran. |
|
|
- |
Indique si le lecteur est en mode plein écran. |
L'implémentation par défaut DefaultFullscreenTransition utilise une solution de rotation de fenêtre indépendante. Vous pouvez injecter une implémentation personnalisée via playerView.fullscreenTransition.
Système de slots
Le système de slots offre un mécanisme de gestion de couche d'interface utilisateur composable et remplaçable.
SlotProtocol (protocole de slot)
Vous pouvez définir le rappel de cycle de vie du slot.
|
Méthode |
Paramètre |
Description |
|
|
|
Le slot est attaché à l'hôte. |
|
|
- |
Le slot est détaché de l'hôte. |
|
|
|
Les données de lecture sont liées. |
|
|
- |
Les données de lecture sont déliées. |
BaseSlot (classe de base des slots)
La classe de base abstraite pour tous les slots intégrés (une sous-classe de UIView) implémente le protocole SlotProtocol et fournit des fonctionnalités communes.
Propriétés
|
Propriété |
Type |
Description |
|
|
id<SlotHost> |
L'hôte auquel le slot est attaché. |
|
|
SlotType |
L'identifiant de type de slot. Il est injecté par SlotHostLayout. |
|
|
SlotSafeAreaEdge |
Les bords de la zone sécurisée à éviter. Par défaut : Tous. |
|
|
BOOL |
L'interrupteur pour la création différée du contenu. |
|
|
BOOL |
Indique si le contenu est prêt. |
|
|
BOOL |
L'interrupteur pour le transfert tactile. Par défaut : YES. |
Méthodes
|
Méthode |
Type |
Description |
|
|
- |
Les sous-classes remplacent cette méthode pour ajouter des éléments d'interface utilisateur personnalisés. |
|
|
- |
Affiche ou masque le slot. |
|
|
|
Affiche ou masque le slot avec une animation. |
|
|
- |
Indique s'il est actuellement visible. |
|
|
- |
Supprime correctement le slot via l'hôte. |
|
|
- |
Les sous-classes remplacent cette méthode pour déclarer le masque binaire des éléments visibles par défaut. |
|
|
|
Interroge la visibilité finale d'un élément spécifique. |
|
|
- |
Lit en toute sécurité le type de scène actuel. |
|
|
- |
Garantit que le contenu différé est prêt. |
SlotManager (gestionnaire de slots)
Le SlotManager est le point d'entrée de gestion unifié du système de slots. Vous pouvez le récupérer à l'aide de AliPlayerView.slotManager.
Méthodes d'enregistrement
|
Méthode |
Paramètre |
Description |
|
|
type, |
Enregistre ou remplace un fournisseur de slots. |
|
|
|
Désenregistre un fournisseur de slots. |
|
|
|
Vérifie si l'enregistrement est effectué. |
|
|
|
Enregistre un slot personnalisé. |
|
|
|
Désenregistre un slot personnalisé. |
Visibilité des slots
|
Méthode |
Paramètre |
Description |
|
|
|
Masque un slot entier. |
|
|
|
Affiche un slot masqué. |
|
|
|
Vérifie si un slot est masqué. |
Visibilité au niveau des éléments
|
Méthode |
Paramètre |
Description |
|
|
|
Masque des éléments spécifiques au sein d'un slot à l'aide d'un masque binaire. |
|
|
|
Affiche des éléments précédemment masqués. |
|
|
|
Remplace le masque des éléments masqués. Cela écrase le masque existant. |
|
|
|
Définit tous les éléments masqués par lot. |
|
|
- |
Efface toutes les configurations de visibilité des éléments. |
Accès au moment de l'exécution
|
Méthode |
Paramètre |
Valeur de retour |
Description |
|
|
|
|
Obtient la vue de slot attachée. |
|
|
- |
|
Reconstruit tous les slots. |
|
|
- |
|
Réinitialise à l'état initial. |
SlotType (constantes de type de slot)
|
Constante |
Valeur |
Description |
|
|
10 |
Couche de vue de rendu du lecteur (la plus basse). |
|
|
20 |
Couche de reconnaissance et de contrôle gestuel. |
|
|
30 |
Couche d'indication paysage. |
|
|
40 |
Couche de miniature vidéo. |
|
|
50 |
Couche d'affichage central (vitesse de lecture, luminosité, volume). |
|
|
60 |
Couche d'indicateur d'état de lecture (chargement, erreur, terminé). |
|
|
70 |
Couche du panneau de journaux. |
|
|
80 |
Couche de la barre de navigation supérieure. |
|
|
90 |
Couche de la barre de contrôle inférieure. |
|
|
100 |
Couche du menu des paramètres. |
|
|
110 |
Couche du panneau d'options (vitesse de lecture, qualité). |
CustomSlotType (type de slot personnalisé)
Cette classe permet d'insérer des slots personnalisés entre les slots intégrés. Les valeurs d'énumération SlotType intégrées sont disposées par intervalles de 10 (10, 20, ..., 110), et CustomSlotType utilise le champ order pour spécifier la position d'insertion.
|
Propriété / Méthode |
Description |
|
|
Un identifiant unique utilisé pour l'enregistrement, la recherche et les vérifications d'égalité. |
|
|
La valeur de tri qui détermine la position du slot sur l'axe Z. Une valeur plus petite signifie qu'il est placé plus bas. |
|
|
Crée une instance de type de slot personnalisé. |
// Insert a custom slot between TopBar (80) and BottomBar (90)
CustomSlotType *type = [CustomSlotType typeWithKey:@"myCustomSlot" order:85];
[playerView.slotManager registerCustomSlotType:type provider:^UIView<SlotProtocol> *(UIView *parentView) {
return [[MyCustomSlotView alloc] initWithFrame:parentView.bounds];
}];
SlotElements (Masques binaires des éléments de slot)
Utilisez les méthodes hideElements:forSlot: et showElements:forSlot: de SlotManager pour contrôler finement la visibilité des éléments d'interface utilisateur individuels dans un slot.
Top Bar Element (Élément de la barre supérieure)
|
Constante |
Bit |
Description |
|
|
1 << 0 |
Bouton Retour. |
|
|
1 << 1 |
Texte du titre. |
|
|
1 << 2 |
Bouton Télécharger. |
|
|
1 << 3 |
Bouton Capture d'écran. |
|
|
1 << 4 |
Bouton Paramètres. |
BottomBarElement (Éléments de la barre inférieure)
|
Constante |
Bit |
Description |
|
|
1 << 0 |
Bouton Lecture/Pause. |
|
|
1 << 1 |
Barre de progression. |
|
|
1 << 2 |
Bouton Actualiser. |
|
|
1 << 3 |
Bouton Vitesse de lecture. Visible uniquement en mode paysage. |
SettingMenuElement (Éléments du menu des paramètres)
|
Constante |
Bit |
Description |
|
|
1 << 0 |
Option de vitesse de lecture. |
|
|
1 << 1 |
Informations sur la qualité. |
|
|
1 << 2 |
Lecture en boucle. |
|
|
1 << 3 |
Muet. |
|
|
1 << 4 |
Mode miroir. |
|
|
1 << 5 |
Mode de rotation. |
|
|
1 << 6 |
Mode de mise à l'échelle. |
|
|
1 << 7 |
Sous-titre. |
CenterDisplayElement (Éléments de la couche d'affichage central)
|
Constante |
Bit |
Description |
|
|
1 << 0 |
Indicateur de volume. |
|
|
1 << 1 |
Indicateur de luminosité. |
|
|
1 << 2 |
Indicateur de vitesse de lecture. |
GestureElement (Éléments de contrôle par gestes)
Ces constantes contrôlent l'activation et la désactivation des interactions gestuelles, et non la visibilité des éléments de l'interface utilisateur. Lorsqu'un bit de geste est défini comme masqué, le geste correspondant est désactivé.
|
Constante |
Bit |
Description |
|
|
1 << 0 |
Geste de simple appui. |
|
|
1 << 1 |
Geste de double appui. |
|
|
1 << 2 |
Geste d'appui long. |
|
|
1 << 3 |
Glissement horizontal (progression). |
|
|
1 << 4 |
Glissement vertical gauche (luminosité). |
|
|
1 << 5 |
Glissement vertical droit (volume). |
PlayStateElement (Éléments de la couche d'état de lecture)
|
Constante |
Bit |
Description |
|
|
1 << 0 |
Message d'erreur. |
|
|
1 << 1 |
Message de chargement. |
Magasin d'état
PlayerStateStore
PlayerStateStore contient un instantané en lecture seule de l'état de lecture actuel. Vous pouvez le récupérer via AliPlayerController.stateStore.
|
Propriété |
Type |
Valeur par défaut |
Description |
|
|
|
|
L'état de lecture actuel. |
|
|
|
0 |
La durée totale en millisecondes. |
|
|
|
0 |
La position actuelle en millisecondes. |
|
|
|
0 |
La position mise en tampon en millisecondes. |
|
|
|
1.0 |
La vitesse de lecture actuelle. |
|
|
|
NO |
Indique si la lecture doit être effectuée en boucle. |
|
|
|
NO |
Indique si l'audio est en sourdine. |
|
|
|
|
Le mode miroir. |
|
|
|
|
Le mode de mise à l'échelle. |
|
|
|
|
L'angle de rotation. |
|
|
|
0 |
La largeur d'origine de la vidéo. |
|
|
|
0 |
La hauteur d'origine de la vidéo. |
|
|
|
nil |
La liste des qualités vidéo disponibles. |
|
|
|
nil |
La qualité vidéo actuellement sélectionnée. |
PlayerViewState
PlayerViewState conserve l'état persistant lié à la couche d'interface utilisateur. Vous pouvez le récupérer via AliPlayerView.viewState. Cet état est conservé lors des changements de vidéo et les mises à jour d'état incluent une déduplication automatique.
|
Propriété / Méthode |
Type |
Valeur par défaut |
Description |
|
|
|
|
Indique si le lecteur est en mode plein écran. |
|
|
|
|
Indique si la barre de contrôle est visible. |
|
|
- |
- |
Réinitialise tous les états à leurs valeurs par défaut. |
|
|
|
- |
Met à jour l'état plein écran. |
|
|
|
- |
Met à jour la visibilité de la barre de contrôle. |
Source vidéo
VideoSource (Modèle de source vidéo)
|
Propriété |
Type |
Description |
|
|
|
Le type de source vidéo. |
|
|
|
L'identifiant unique. Renvoie |
|
|
|
L'URL de la vidéo. Valide pour le type URL. |
|
|
|
L'ID de la vidéo. Valide pour VidAuth/VidSts. |
|
|
|
L'identifiant de lecture. Valide pour VidAuth. |
|
|
|
L'AccessKeyId STS. |
|
|
|
L'AccessKeySecret STS. |
|
|
|
Le SecurityToken STS. |
|
|
|
L'ID de la région. |
Méthodes de fabrique
|
Méthode |
Paramètre |
Valeur de retour |
Description |
|
|
vid, playAuth |
|
Crée une source vidéo VidAuth. Cette option est recommandée. |
|
|
vid, keyId, secret, token, region |
|
Crée une source vidéo VidSts. |
|
|
url |
|
Crée une source vidéo URL. |
|
|
- |
|
Valide la configuration. |
VideoSourceType (Type de source vidéo)
|
Constante |
Valeur |
Description |
|
|
0 |
Identifiant VID + identifiant de lecture PlayAuth. Cette option est recommandée. |
|
|
1 |
Identifiant VID + identifiant temporaire STS. |
|
|
2 |
Lecture directe par URL. |
Système de stratégies
Le système de stratégies offre un mécanisme enfichable permettant d'étendre le comportement de lecture. Les noms de stratégie doivent être uniques à l'échelle globale.
StrategyProtocol (Protocole de stratégie)
Ce protocole définit le contrat de cycle de vie d'une stratégie. Les noms de stratégie doivent être uniques à l'échelle globale.
|
Méthode |
Paramètre |
description |
|
|
- |
Nom d'identifiant unique de la stratégie. |
|
|
|
La stratégie démarre et se lie au contexte du lecteur. |
|
|
- |
La stratégie s'arrête et se détache du contexte. |
|
|
|
La stratégie est réinitialisée. Cette méthode est appelée lors du changement de source vidéo. |
StrategyContext (Contexte de stratégie)
Le contexte d'environnement du lecteur en lecture seule est fourni à la stratégie et est créé puis transmis par StrategyManager au démarrage de la stratégie.
|
Propriété |
type |
description |
|
|
|
Contrôleur de lecteur associé. |
|
|
|
Modèle de configuration de lecture actuel. |
|
|
|
Magasin d'état du lecteur. |
Cet objet n'est plus valide après l'appel à strategyDidStop ; vous ne devez pas continuer à l'utiliser.
BaseStrategy (Classe de stratégie de base)
Classe de base abstraite pour les stratégies qui implémente StrategyProtocol et PlayerNotificationDelegate afin de gérer automatiquement l'abonnement et le désabonnement aux événements du lecteur.
|
Propriété / Méthode |
description |
|
|
Contexte de stratégie actuel. Il n'est valide qu'entre |
|
|
Méthode hook permettant aux sous-classes de réinitialiser leur état interne, par exemple en effaçant des compteurs ou des minuteurs. |
Flux de cycle de vie : strategyDidStart: → Enregistrement du contexte → Inscription de l'agent de notification → strategyDidReset: → Mise à jour du contexte → Appel de resetInternalState → strategyDidStop → Désinscription de l'agent de notification → Effacement du contexte.
Les classes enfants doivent remplacer la méthode strategyName. Si vous remplacez strategyDidStart:, strategyDidStop ou strategyDidReset:, vous devez appeler super.
StrategyManager (Gestionnaire de stratégies)
Chaque AliPlayerController possède une instance de StrategyManager. Les stratégies sont exécutées dans l'ordre d'enregistrement et les appels de cycle de vie pour chaque stratégie sont isolés à l'aide de @try/@catch.
Méthodes
|
Méthode |
Paramètre |
description |
|
|
|
Enregistre une stratégie. Si une stratégie portant le même nom existe déjà, elle est arrêtée et remplacée. |
|
|
|
Désenregistre une stratégie par son nom. |
|
|
|
Recherche une stratégie par son nom. |
|
|
controller, playerModel |
Démarre toutes les stratégies enregistrées. |
|
|
|
Réinitialise toutes les stratégies. Cette méthode est utilisée lors du changement de source vidéo. |
|
|
- |
Arrête toutes les stratégies. |
|
|
- |
Arrête et supprime toutes les stratégies. |
Propriétés
|
Propriété |
type |
description |
|
|
|
Nombre de stratégies actuellement enregistrées. |
|
|
|
Indique si le gestionnaire est en cours d'exécution. |
StrategyRegistry (Registre global de stratégies)
Le registre global de stratégies est un singleton qui maintient un groupe de blocs factory de stratégies. Chaque fois qu'un nouveau AliPlayerController est créé, toutes les factories enregistrées sont instanciées et injectées dans le StrategyManager du contrôleur à l'aide de applyToManager:.
|
Méthode |
Paramètre |
description |
|
|
- |
Obtient le singleton du registre global. |
|
|
|
Ajoute une factory de stratégie globale. |
|
|
- |
Supprime toutes les factories de stratégies globales, y compris celles intégrées. |
|
|
|
Instancie toutes les stratégies globales et les enregistre auprès du gestionnaire spécifié. |
|
|
- |
Restaure la configuration de stratégie intégrée par défaut. |
Les stratégies intégrées (FirstFrameStrategy, StutterDetectStrategy et TrafficProtectionStrategy) sont automatiquement enregistrées lors du premier accès.
Stratégies intégrées
FirstFrameStrategy (Surveillance du temps jusqu'à la première image)
Mesure le temps écoulé entre le début de la préparation du lecteur et le rendu de la première image. Elle est divisée en une phase de préparation (Preparing to Prepared) et une phase de rendu (Prepared to FirstFrameRendered).
|
Propriété |
type |
description |
|
|
|
Délégué de rappel |
Rappel FirstFrameStrategyDelegate :
|
Méthode |
Paramètre |
description |
|
|
strategy, prepareTimeMs, renderTimeMs, totalTimeMs |
La première image est rendue. |
StutterDetectStrategy (Détection des saccades)
Détecte les saccades en écoutant les événements Loading. Le chargement avant le rendu de la première image n'est pas comptabilisé.
|
Propriété |
type |
description |
|
|
|
Nombre de saccades durant la session actuelle. |
|
|
|
Durée totale des saccades durant la session actuelle, en millisecondes. |
|
|
|
Seuil de saccade en millisecondes. Valeur par défaut : 0. |
|
|
|
Délégué de rappel. |
|
|
|
Crée une stratégie de détection des saccades avec un seuil spécifié. |
Rappel StutterDetectStrategyDelegate :
|
Méthode |
Paramètre |
description |
|
|
strategy, durationMs |
Une saccade est détectée. |
|
|
strategy, stayDurationMs, validPlayDurationMs, totalStutterDurationMs, stutterCount |
L'analyse de la session de lecture est terminée. |
TrafficProtectionStrategy (Protection du trafic)
Surveille les changements d'état du réseau et détecte la lecture sur les réseaux cellulaires. Elle effectue uniquement la détection et la journalisation, sans mettre automatiquement la lecture en pause.
|
Propriété |
type |
description |
|
|
|
Indique si l'appareil est actuellement connecté à un réseau cellulaire. |
|
|
|
Délégué de rappel. |
Rappel TrafficProtectionStrategyDelegate :
|
Méthode |
Paramètre |
description |
|
|
strategy |
La lecture sur un réseau cellulaire est détectée. |
|
|
strategy |
Le réseau revient au Wi-Fi. |
Système de journalisation
Le système de journalisation fournit un mécanisme unifié pour la sortie des journaux et l'enregistrement des observateurs.
LogHub (Centre de journalisation)
Le centre de gestion des journaux (singleton) unifie la sortie des journaux et l'enregistrement des observateurs. Il utilise un modèle de threading hybride : la sortie console est effectuée de manière synchrone sur le thread appelant, tandis que les notifications aux observateurs sont distribuées de manière asynchrone vers une file d'attente série en arrière-plan.
Propriétés
|
Propriété |
type |
Valeur par défaut |
description |
|
|
BOOL |
YES |
Indique s'il faut activer la sortie des journaux. |
|
|
LogLevel |
LogLevelInfo |
Niveau minimal de sortie des journaux. |
|
|
BOOL |
YES |
Indique s'il faut activer la sortie console (NSLog). |
Gestion des observateurs
|
Méthode |
Paramètre |
description |
|
|
- |
Obtient le singleton LogHub partagé. |
|
|
|
Ajoute un observateur de journal. Il est conservé par une référence forte. |
|
|
|
Supprime un observateur de journal. |
Sortie des journaux
|
Méthode |
Paramètre |
description |
|
|
tag, message |
Génère un journal de niveau Verbose. |
|
|
tag, message |
Génère un journal de niveau Debug. |
|
|
tag, message |
Génère un journal de niveau Info. |
|
|
tag, message |
Génère un journal de niveau Warn. |
|
|
tag, message |
Génère un journal de niveau Error. |
|
|
tag, message, error (nullable) |
Génère un journal de niveau Error avec un objet d'erreur associé. |
|
|
level, tag, message |
Génère un journal au niveau spécifié. |
Méthodes utilitaires
|
Méthode |
Paramètre |
Valeur de retour |
description |
|
|
|
|
Convertit un niveau de journal en chaîne abrégée (V/D/I/W/E/N). |
|
|
|
|
Convertit une chaîne de nom de niveau en valeur d'énumération. |
LogObserver (Protocole d'observateur de journal)
Implémentez ce protocole pour recevoir tous les rappels de sortie de journal afin de gérer les journaux de manière personnalisée, par exemple en les écrivant dans un fichier ou en les signalant à un serveur.
|
Méthode |
Paramètre |
description |
|
|
|
Rappel de sortie de journal. Il est exécuté sur un sous-thread. |
LogInfo (Modèle d'informations de journal)
Modèle de données pour une entrée de journal unique.
|
Propriété |
type |
description |
|
|
|
Niveau du journal. |
|
|
|
Tag du journal. |
|
|
|
Message du journal. |
|
|
|
Horodatage. |
|
|
|
Nom du thread. |
|
|
|
Nom du fichier source. |
|
|
|
Numéro de ligne du code source. |
|
|
|
Objet d'erreur associé. |
|
|
- |
Obtient la chaîne de journal formatée. |
Système de préchargement
Le système de préchargement encapsule la fonctionnalité globale de préchargement du SDK du lecteur. Vous pouvez y accéder via [AliPlayerKit preloader].
PlayerPreloader (Protocole de préchargement)
Ce protocole encapsule la fonctionnalité globale de préchargement du SDK du lecteur. Vous pouvez y accéder via [AliPlayerKit preloader].
|
Méthode |
Paramètre |
Valeur de retour |
Description |
|
|
task, delegate |
|
Ajoute une tâche de préchargement. |
|
|
|
|
Annule une tâche spécifique. |
|
|
|
|
Suspend une tâche spécifique. |
|
|
|
|
Reprend une tâche spécifique. |
|
|
- |
|
Annule toutes les tâches de préchargement. |
PlayerPreloadTask (Tâche de préchargement)
|
Propriété |
Type |
Description |
|
|
|
La source de données vidéo. |
|
|
|
La configuration de préchargement. |
|
|
videoSource, preloadConfig |
Crée une tâche de préchargement. |
PlayerPreloadConfig (Configuration de préchargement)
|
Propriété |
Type |
Valeur par défaut |
Description |
|
|
|
3000 |
La durée de préchargement en millisecondes. |
|
|
|
0 |
La position de début du préchargement en millisecondes. |
|
|
|
|
L'identifiant de qualité par défaut. |
|
|
|
0 |
La résolution par défaut. 0 signifie aucune limite. |
|
|
|
0 |
Le débit binaire par défaut. 0 signifie aucune limite. |
|
|
|
0 |
Le délai d'expiration réseau en millisecondes. 0 utilise la valeur par défaut du SDK. |
|
|
|
0 |
Le nombre de tentatives réseau. 0 utilise la valeur par défaut du SDK. |
|
|
|
nil |
Informations sur le référent. |
|
|
|
nil |
En-têtes de requête personnalisés. |
Méthodes de création
|
Méthode |
Paramètre |
Description |
|
|
- |
Crée une configuration avec les paramètres par défaut. |
|
|
preloadDuration, defaultQuality |
Crée une configuration avec une durée de préchargement et une qualité par défaut spécifiées. |
PreloadDelegate (Délégué de préchargement)
Ce protocole reçoit les événements d'état des tâches de préchargement. Toutes les méthodes sont @required.
Les rappels peuvent être déclenchés sur un thread d'arrière-plan. Vous devez les dispatcher vers le thread principal pour leur traitement.
|
Méthode |
Paramètre |
Description |
|
|
taskId, source |
La tâche de préchargement est terminée. |
|
|
taskId, source, error |
La tâche de préchargement a échoué. |
|
|
taskId, source |
La tâche de préchargement a été annulée. |
Système de localisation
Le système de localisation gère la prise en charge multilingue de PlayerKit. Il prend en charge trois modes : suivre automatiquement la langue du système, spécifier manuellement une langue ou utiliser des fournisseurs personnalisés.
LocaleManager (Gestionnaire de localisation)
Le gestionnaire de localisation (singleton) qui gère la prise en charge multilingue de PlayerKit.
Chaîne de résolution : Fournisseur personnalisé (si injecté) → Bundle pour la langue spécifiée manuellement (mode Manuel) → Bundle SDK suivant la langue du système → Renvoie la clé elle-même en dernier recours.
Propriétés
|
Propriété |
Type |
Description |
|
|
|
Le code de langue actuel. |
|
|
|
Le mode de langue actuel. |
|
|
|
Le fournisseur personnalisé actuellement injecté. |
Méthodes
|
Méthode |
Paramètre |
Description |
|
|
- |
Obtient l'instance singleton. |
|
|
|
Définit la langue manuellement. Cela bascule en mode Manuel. |
|
|
|
Injecte un fournisseur personnalisé. Il est détenu par une référence faible. Passez |
|
|
- |
Réinitialise la langue pour suivre la langue du système. |
|
|
|
Interroge une chaîne localisée. |
LocaleMode (Mode de langue)
|
Constante |
Valeur |
Description |
|
|
0 |
Suit la langue du système. C'est la valeur par défaut. |
|
|
1 |
Spécifie manuellement le code de langue. |
LocaleProvider (Protocole de fournisseur de localisation)
L'application hôte peut implémenter ce protocole pour fournir des traductions personnalisées pour PlayerKit.
|
Méthode |
Paramètre |
Valeur de retour |
Description |
|
|
|
|
Renvoie une chaîne localisée pour une clé spécifiée. Le renvoi de |
LocaleDidChangeNotification (Notification de changement de langue)
Lorsque le mode de langue ou le code de langue change, une notification LocaleDidChangeNotification est envoyée sur le thread principal. Le dictionnaire userInfo contient le nouveau code de langue sous la clé LocaleLanguageCodeKey.
Énumérations et constantes clés
Types d'énumération principaux utilisés dans AliPlayerKit.
PlayerState (État du lecteur)
|
Constante |
Valeur |
Description |
|
|
0 |
Inactif. Initialisé mais aucune ressource n'est chargée. |
|
|
1 |
En préparation. Chargement asynchrone des ressources. |
|
|
2 |
Prêt. Prêt à démarrer la lecture. |
|
|
3 |
En lecture. |
|
|
4 |
En pause. |
|
|
5 |
Terminé. |
|
|
6 |
Arrêté. |
|
|
7 |
État d'erreur. |
SceneType (Type de scénario)
|
Constante |
Valeur |
Description |
|
|
0 |
Scénario de vidéo à la demande |
|
|
1 |
Scénario de diffusion en direct. |
|
|
2 |
Scénario de liste de vidéos ou de flux de courtes vidéos. |
|
|
3 |
Scénario de lecture restreinte. |
|
|
4 |
Scénario de page de lecture minimaliste. |
ScaleMode (Mode de mise à l'échelle)
|
Constante |
Valeur |
Description |
|
|
0 |
Étire pour remplir la vue. |
|
|
1 |
Mise à l'échelle proportionnelle pour s'adapter à la vue. Cela peut laisser des bandes noires. |
|
|
2 |
Mise à l'échelle proportionnelle et recadrage pour remplir. |
MirrorMode (Mode miroir)
|
Constante |
Valeur |
Description |
|
|
0 |
Aucun effet miroir. |
|
|
1 |
Effet miroir horizontal. |
|
|
2 |
Effet miroir vertical. |
RotateMode (Mode de rotation)
|
Constante |
Valeur |
Description |
|
|
0 |
0 degré. |
|
|
90 |
90 degrés. |
|
|
180 |
180 degrés. |
|
|
270 |
270 degrés. |
LogLevel (Niveau de journalisation)
|
Constante |
Valeur |
Description |
|
|
0 |
Informations de débogage les plus détaillées. |
|
|
1 |
Niveau de débogage. |
|
|
2 |
Niveau d'information. C'est la valeur par défaut. |
|
|
3 |
Niveau d'avertissement. |
|
|
4 |
Niveau d'erreur. |
|
|
100 |
Désactive tous les journaux. |
TrackType (Type de piste)
|
Constante |
Valeur |
Description |
|
|
0 |
Inconnu. |
|
|
1 |
Piste vidéo. |
|
|
2 |
Piste audio. |
|
|
3 |
Piste de sous-titres. |
|
|
4 |
Piste VOD. |