Todos os produtos
Search
Central de documentação

ApsaraVideo Live:Implementar pull de stream baseado em RTS no iOS

Última atualização: Jun 30, 2026

Implemente a transmissão ao vivo com ultrabaixa latência do RTS no iOS integrando o ApsaraVideo Player SDK.

Pré-requisito

O CocoaPods deve estar instalado no ambiente de desenvolvimento.

Integrar o SDK

Adicione as dependências do ApsaraVideo Player SDK usando o método pod.

  1. Abra a janela do terminal.

  2. Acesse o diretório do projeto e crie um Podfile.

    pod init

  3. Edite o Podfile para adicionar as dependências da versão mais recente.

    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 
    Importante
    • A camada de ponte entre o player e o componente RTS (AlivcArtc) deve usar a mesma versão do SDK do player. Integre-a obrigatoriamente junto com o componente RTS.

    • Para versões do player, consulte Baixe o SDK. Recomendamos o uso da versão mais recente. O ApsaraVideo Player exige a versão mais recente, sendo a V5.4.5.0 a mínima suportada.

    • Para perguntas frequentes, consulte FAQ do Player iOS.

  4. Instale o SDK. Após executar o comando, um arquivo *.xcworkspace será gerado, confirmando a conclusão da integração do SDK.

    pod install

Uso das interfaces do ApsaraVideo Player SDK

Chame as APIs do ApsaraVideo Player SDK para ativar o RTS. Para conhecer outros recursos do SDK, consulte Recursos avançados e Operações de API.

Nota
  • O código de exemplo a seguir serve apenas como referência. Para a implementação completa, consulte o módulo RTS Ultra-Low-Latency Streaming Playback no projeto de exemplo API-Example em Objective-C, que demonstra os principais recursos do ApsaraVideo Player SDK.

  • Ao usar o pull de stream RTS com o ApsaraVideo Player, não chame pause para pausar uma transmissão ao vivo. Em vez disso, chame stop para interromper a reprodução e, em seguida, chame prepare para retomar.

  • Não há suporte para busca (arrastar a barra de progresso).

Criar um player

  1. Crie um player.

    Crie uma instância 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];
    Nota

    O player oferece os recursos de Monitoramento da Qualidade de Reprodução, Rastreamento de Ponto Único e Estatísticas de Reprodução de Vídeo. Todos dependem do relatório de logs de instrumentação.

    As capacidades disponíveis variam conforme a configuração do parâmetro setTraceID:

    • Se setTraceID for omitido (padrão), o relatório de logs de instrumentação fica ativado. É possível usar o monitoramento da qualidade de reprodução e as estatísticas de reprodução de vídeo, mas não o rastreamento de ponto único.

    • setTraceID definido com um trace ID: O trace ID deve ser um identificador exclusivo do usuário ou dispositivo, como um ID de usuário ou ID de dispositivo (IMEI ou IDFA). Com um trace ID configurado, o relatório de logs de instrumentação é ativado, permitindo o uso do monitoramento da qualidade de reprodução, rastreamento de ponto único e estatísticas de reprodução de vídeo.

    • setTraceID definido como DisableAnalytics: Desativa o relatório de logs de instrumentação. Os recursos de monitoramento da qualidade de reprodução, rastreamento de ponto único e estatísticas de reprodução de vídeo ficam indisponíveis.

  2. Defina a source de reprodução.

    O player suporta quatro sources de reprodução: VidSts, VidAuth, VidMps e UrlSource. Para usar RTS, defina UrlSource com uma URL que utilize o protocolo artc://.

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

    Para mais informações sobre como definir a source de reprodução, consulte Recursos Básicos.

  3. Configure os parâmetros de reprodução.

    Configure os parâmetros de reprodução para otimizar a experiência do RTS.

    Nota

    A partir da versão 6.3.0, o SDK do player suporta configuração automática ideal de baixa latência. Quando a URL de reprodução começa com artc:// e os valores de MaxDelayTime, HighBufferDuration ou StartBufferDuration em AVPConfig não forem modificados manualmente, o SDK usará automaticamente os valores 1000, 10 e 10 para a reprodução real.

    Para personalizar esses parâmetros, use o seguinte exemplo:

    //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. Inicie a reprodução.

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

Controlar a reprodução

O ApsaraVideo Player SDK suporta controles comuns de reprodução, como iniciar, parar e buscar.

  1. Iniciar reprodução

Use o método start para iniciar a reprodução do vídeo.

 [mAliPlayer start];
  1. Parar reprodução

Use o método stop para parar a reprodução do vídeo. Exemplo:

[mAliPlayer stop];
  1. Destruir o player

É possível destruir o player de forma síncrona ou assíncrona:

// 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];
Nota

A destruição síncrona bloqueia a execução até que todos os recursos do player sejam liberados. Para obter resposta mais rápida da UI, use a destruição assíncrona. Observe o seguinte:

  1. Não realize nenhuma operação no objeto do player durante a destruição assíncrona.

  2. Não é necessário parar manualmente a reprodução antes da destruição assíncrona, pois o processo inclui uma etapa automática de parada.

Usar recursos auxiliares

  1. Alternador de Log

    // 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. Fallback de Transmissão Ao Vivo

    Nota
    • O downgrade aplica-se apenas a cenários de tempo limite. Se ocorrer um tempo limite e você tiver configurado uma das opções de downgrade abaixo, o player fará o downgrade automaticamente. Caso contrário, ele acionará o callback onError. Erros como HTTP 404, 403 ou desconexão do streamer não acionam o downgrade.

    • O Downgrade automático de RTS faz a transição de RTS para FLV usando o mesmo domínio. Se os domínios RTS e FLV forem diferentes, configure o Downgrade personalizado de RTS para especificar o domínio FLV de destino.

    1. Downgrade automático de RTS (ativado por padrão)

      Se nenhum downgrade personalizado estiver configurado, o player retornará automaticamente à URL FLV padrão associada à URL RTS quando o pull de stream RTS falhar. Exemplo:

      // 1 indicates on, and 0 indicates off. The default value is on.
      [AliPlayerGlobalSettings setOption:ALLOW_PRE_RENDER valueInt:1];
    2. Downgrade personalizado de RTS

      Especifique uma URL de fallback (HLS ou FLV) para a reprodução RTS. Se o pull de stream RTS falhar, o player mudará automaticamente para a URL especificada.

      // 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. Obter o Trace ID

    Cada sessão de reprodução de baixa latência gera um trace ID para solução de problemas. Recupere-o pelo callback de eventos do player.

    // 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;
        }
    }