Tous les produits
Search
Centre de documentation

ApsaraVideo Live:Implémenter la lecture de flux RTS sur iOS

Dernière mise à jour :Aug 08, 2026

Implémentez la diffusion en direct à ultra-faible latence via RTS sur iOS en intégrant le SDK ApsaraVideo Player.

Prérequis

CocoaPods doit être installé dans votre environnement de développement.

Intégrer le SDK

Ajoutez les dépendances du SDK ApsaraVideo Player à l'aide de CocoaPods.

  1. Ouvrez le terminal.

  2. Accédez au répertoire de votre projet et créez un fichier Podfile.

    pod init

  3. Modifiez le fichier Podfile pour ajouter les dépendances de la dernière version.

    player_sdk_version = 'x.x.x' # We recommend using the latest version
    rts_sdk_version = '7.12.0' # The version number is independent of the Player SDK. V7.12.0 is the latest.
    
    # ApsaraVideo Player SDK 
    pod 'AliPlayerSDK_iOS' , player_sdk_version
    # A bridging layer between the SDK and RTS component (AlivcArtc). Its version must be the same as the SDK version. It must be integrated together with the RTS component.
    pod 'AliPlayerSDK_iOS_ARTC' , player_sdk_version
    # The RTS component.
    pod 'RtsSDK' , rts_sdk_version 
    Important
    • La couche de pont entre le lecteur et le composant RTS (AlivcArtc) doit utiliser le même numéro de version que le SDK du lecteur. Vous devez l'intégrer conjointement avec le composant RTS.

    • Pour les versions du lecteur, consultez la rubrique Téléchargement du SDK. Nous vous recommandons d'utiliser la dernière version. ApsaraVideo Player requiert la dernière version, avec une prise en charge minimale à partir de la version V5.4.5.0.

    • Pour les questions fréquentes, consultez la rubrique FAQ sur le lecteur iOS.

  4. Installez le SDK. L'exécution de la commande génère un fichier *.xcworkspace, ce qui confirme que l'intégration du SDK est terminée.

    pod install

Utiliser les interfaces du SDK ApsaraVideo Player

Appelez les API du SDK ApsaraVideo Player pour activer RTS. Pour plus d'informations sur les autres fonctionnalités du SDK, consultez les rubriques Fonctionnalités avancées et Opérations d'API.

Remarque
  • L'exemple de code suivant est fourni à titre indicatif uniquement. Pour une implémentation complète, consultez le module RTS Ultra-Low-Latency Streaming Playback du projet exemple API-Example, un projet Objective-C qui illustre les fonctionnalités principales du SDK ApsaraVideo Player.

  • Lorsque vous utilisez la lecture de flux RTS avec ApsaraVideo Player, n'appelez pas pause pour mettre en pause un flux en direct. Appelez plutôt stop pour arrêter la lecture, puis prepare pour la reprendre.

  • La recherche temporelle (drag-and-drop) n'est pas prise en charge.

Créer un lecteur

  1. Créez un lecteur.

    Créez une instance AliPlayer.

    // Create a player instance
    AliPlayer mAliPlayer = [[AliPlayer alloc] init];
    
    // Create a view container for displaying the playback content and set the player's rendering view
    UIView playerView = [[UIView alloc] initWithFrame:self.view.bounds];
    [self.view addSubview:playerView];
    mAliPlayer.playerView = playerView;
    
    [mAliPlayer setTraceID:traceId];
    Remarque

    Le lecteur propose les fonctionnalités Surveillance de la qualité de lecture, Traçage ponctuel et Statistiques de lecture vidéo, qui reposent toutes sur la génération de journaux d'instrumentation.

    Les capacités disponibles dépendent de la configuration du paramètre setTraceID :

    • Si setTraceID est omis (valeur par défaut), la génération de journaux d'instrumentation est activée. Vous pouvez utiliser la surveillance de la qualité de lecture et les statistiques de lecture vidéo, mais pas le traçage ponctuel.

    • setTraceID défini avec un ID de trace : l'ID de trace doit être un identifiant unique pour votre utilisateur ou votre appareil, tel qu'un ID utilisateur ou un ID d'appareil (IMEI ou IDFA). Lorsqu'un ID de trace est configuré, la génération de journaux d'instrumentation est activée et vous pouvez utiliser la surveillance de la qualité de lecture, le traçage ponctuel et les statistiques de lecture vidéo.

    • setTraceID défini sur DisableAnalytics : désactive la génération de journaux d'instrumentation. La surveillance de la qualité de lecture, le traçage ponctuel et les statistiques de lecture vidéo ne sont pas disponibles.

  2. Définissez la source de lecture.

    Le lecteur prend en charge quatre sources de lecture : VidSts, VidAuth, VidMps et UrlSource. Pour utiliser RTS, définissez UrlSource avec une URL utilisant le protocole artc://.

    AVPUrlSource *urlSource = [[AVPUrlSource alloc] 
    urlWithString:"artc://<streaming URL>"]; 
    [mAliPlayer setUrlSource:urlSource];
    Remarque

    Pour plus d'informations sur la définition de la source de lecture, consultez la rubrique Fonctionnalités de base.

  3. Configurez les paramètres de lecture.

    Configurez les paramètres de lecture afin d'optimiser l'expérience RTS.

    Remarque

    À partir de la version 6.3.0, le SDK du lecteur prend en charge la configuration automatique optimale pour une faible latence. Lorsque l'URL de lecture commence par artc:// et que vous n'avez pas modifié manuellement les valeurs MaxDelayTime, HighBufferDuration ou StartBufferDuration dans AVPConfig, le SDK utilise automatiquement les valeurs 1000, 10 et 10 pour la lecture effective.

    Pour personnaliser ces paramètres, utilisez l'exemple suivant :

    //1. Obtain and modify the configuration.
    AVPConfig *config = mAliPlayer.getConfig;
    
    if ([playUrl hasPrefix:@"artc://"]) {
        // The maximum latency. Unit: milliseconds. In this example, set the value to 1000, which is 1 second.
        [config setMaxDelayTime:1000];
        // The buffer duration for playback startup.
        [config setStartBufferDuration:10];
        // The buffer duration for stuttering recovery.
        [config setHighBufferDuration:10];
    } else {
        // You can use default configuration or specify custom values.
    }
    
    //2. Apply the configuration.
    [mAliPlayer setConfig:config];
  4. Démarrez la lecture.

    // Prepare for playback
    [mAliPlayer prepare];
    // After prepare, you can synchronously call the start operation. Playback automatically starts when the onPrepared callback completes.
    [mAliPlayer start];

Contrôler la lecture

Le SDK ApsaraVideo Player prend en charge les commandes de lecture courantes telles que le démarrage, l'arrêt et la recherche temporelle.

  1. Démarrer la lecture

Utilisez la méthode start pour démarrer la lecture vidéo.

 [mAliPlayer start];
  1. Arrêter la lecture

Utilisez la méthode stop pour arrêter la lecture vidéo. Voici un exemple :

[mAliPlayer stop];
  1. Détruire le lecteur

Vous pouvez détruire le lecteur de manière synchrone ou asynchrone :

// Synchronously destroy the player. The system automatically calls the stop method.
[mAliPlayer destroy];
// Asynchronously destroy the player. The system automatically calls the stop method.
[mAliPlayer destroyAsync];
Remarque

La destruction synchrone bloque l'exécution jusqu'à ce que toutes les ressources du lecteur soient libérées. Pour une réactivité plus rapide de l'interface utilisateur, privilégiez la destruction asynchrone. Notez les points suivants :

  1. N'effectuez aucune opération sur l'objet lecteur pendant la destruction asynchrone.

  2. Il n'est pas nécessaire d'arrêter manuellement la lecture avant la destruction asynchrone, car le processus inclut une étape d'arrêt automatique.

Utiliser les fonctionnalités auxiliaires

  1. Activation/Désactivation des journaux

    // Enable logging.
    [mAliPlayer setEnableLog:YES];
    [mAliPlayer setLogCallbackInfo:LOG_LEVEL_TRACE callbackBlock:nil];
    
    // Disable logging.
    [mAliPlayer setEnableLog:NO];
    [mAliPlayer setLogCallbackInfo:LOG_LEVEL_NONE callbackBlock:nil];
  2. Repli de la diffusion en direct

    Remarque
    • Le repli s'applique uniquement aux scénarios de délai d'expiration (timeout). Si un délai d'expiration se produit et que vous avez configuré l'une des options de repli ci-dessous, le lecteur effectue automatiquement le repli. Sinon, il déclenche le rappel onError. Les erreurs telles que HTTP 404, 403 ou la déconnexion de l'émetteur ne déclenchent pas le repli.

    • Le repli automatique RTS permet de passer de RTS à FLV en utilisant le même domaine. Si vos domaines RTS et FLV diffèrent, configurez le repli RTS personnalisé pour spécifier le domaine FLV cible.

    1. Repli automatique RTS (activé par défaut)

      Si aucun repli personnalisé n'est configuré, le lecteur revient automatiquement à l'URL FLV par défaut associée à l'URL RTS lorsque la lecture de flux RTS échoue. Par exemple :

      // 1 indicates on, and 0 indicates off. The default value is on.
      [AliPlayerGlobalSettings setOption:ALLOW_PRE_RENDER valueInt:1];
    2. Repli RTS personnalisé

      Spécifiez une URL de secours (HLS ou FLV) pour la lecture RTS. Si la lecture de flux RTS échoue, le lecteur bascule automatiquement vers l'URL spécifiée.

      // Specify the downgrade source URL.
      AVPUrlSource *urlSource = [[AVPUrlSource alloc] urlWithString:downgradeUrl];
      // Optional. Configure other settings.
      AVPConfig *config = [mAliPlayer getConfig];
      // Specify the degraded streaming URL.
      [mAliPlayer enableDowngrade:urlSource config:config];
  3. Obtenir l'ID de trace

    Chaque session de lecture à faible latence génère un ID de trace utile pour le dépannage. Récupérez-le depuis le rappel d'événement du lecteur.

    // Listen to the onPlayerEvent callback and parse the DemuxerTraceID message.
    - (void)onPlayerEvent:(AliPlayer*)mAliPlayer eventWithString:(AVPEventWithString)eventWithString description:(NSString *)description {
        switch (eventWithString) {
            case EVENT_PLAYER_DEMUXER_TRACE_ID:
                {
                    NSString *traceId = description;
                }
                    break;
                default:
                    break;
        }
    }