Este documento explica como integrar rapidamente o AliPlayerKit ao seu projeto iOS.
Dica para IA: Este documento estruturado possui etapas claras, ideais para análise e execução por IA. Use-o como uma Skill para auxiliar no fluxo de trabalho de desenvolvimento. Recomendamos usar assistência de IA para integrar o AliPlayerKit.
Visão geral da integração
Certifique-se de acessar o AliPlayerKit e baixe o projeto.
O AliPlayerKit oferece duas opções de integração. Escolha uma conforme as necessidades do seu negócio:
|
Opção de integração |
Descrição |
Casos de uso |
|
Integração no nível de componente |
Integre o módulo principal |
Ideal para quem precisa de uma interface de player personalizada ou controle mais flexível sobre o comportamento de reprodução. |
|
Integração no nível de cena |
Integre o módulo de cena |
Recomendado para implementar rapidamente cenários padrão de reprodução. |
A integração no nível de cena baseia-se na integração no nível de componente. Portanto, conclua primeiro a integração no nível de componente.
Pré-requisitos
Ambiente de desenvolvimento
|
Item |
Requisito mínimo |
Descrição |
|
iOS deployment target |
9,0+ |
Versão mínima declarada no Podspec. |
|
Xcode |
15,0+ |
Recomenda-se a versão estável mais recente. |
|
CocoaPods |
1.13.0+ |
Ferramenta de gerenciamento de dependências. |
|
Linguagem de desenvolvimento |
Objective-C |
Projetos Swift podem chamá-lo por meio de um bridging header. |
|
Arquitetura |
arm64 |
Necessária para executar o aplicativo em dispositivo físico. |
Para projetos Swift, siga o guia Swift-Call-OC-Example para integrar e usar o PlayerKit.
Licença
Você deve ter um certificado de licença de player e uma License Key para o ApsaraVideo Player SDK. Para mais detalhes, consulte Gerencie License.
Se a licença não for configurada corretamente, o player não funcionará adequadamente e poderá causar tela preta durante a reprodução.
Opção 1: Integração no nível de componente
O módulo principal PlayerKit fornece um componente de interface de player configurável e pronto para uso, que abrange reprodução básica e recursos interativos comuns.
Etapa 1: Copie o módulo para o projeto
Copie o diretório PlayerKit/ para o diretório do projeto (no mesmo nível do Podfile ou em um subdiretório adequado):
YourProject/
├── YourApp/
├── PlayerKit/ # ← Copy this directory
│ ├── PlayerKit.podspec
│ ├── Source/
│ └── Resources/
└── Podfile
Etapa 2: Configure o Podfile
No Podfile, referencie o PlayerKit pelo caminho local:
platform :ios, '11.0'
target 'YourApp' do
use_frameworks!
# Core component (required, referenced by local path)
pod 'PlayerKit', :path => './PlayerKit'
# Underlying player SDK (required)
pod 'AliPlayerSDK_iOS', '~> 7.15.0'
# RTS for ultra-low latency live streaming (optional, for live streaming scenarios only)
# pod 'AliPlayerSDK_iOS_ARTC', '~> 7.15.0'
# pod 'RtsSDK', '~> 7.12.0'
end
O arquivo PlayerKit.podspec declara dependências do AliPlayerSDK_iOS e do SDWebImage, instalados automaticamente ao executar pod install. O AliPlayerSDK_iOS fornece capacidades de decodificação e renderização de vídeo. O SDWebImage carrega a imagem de capa. Se o projeto já utilizar o SDWebImage, verifique a compatibilidade de versões.
Etapa 3: Instale as dependências
pod install
open YourApp.xcworkspace
Após usar o CocoaPods, abra o projeto com o arquivo .xcworkspace, não com o .xcodeproj.
Etapa 4: Configure a licença
O SDK do player requer uma licença válida para funcionar. Consulte Gerencie License para obter e configurar sua licença.
Certifique-se de registrar a licença antes de chamar [AliPlayerKit setup].
Etapa 5: Inicialização global
Chame este método apenas uma vez durante o ciclo de vida do aplicativo:
#import <AliPlayerKit/AliPlayerKit.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// (Optional) Global SDK configuration, such as setOption
// [AliPlayerKit setOnGlobalInitBlock:^{
// Global configuration is executed only once after setup
// }];
// Initialize AliPlayerKit
[AliPlayerKit setup];
return YES;
}import AliPlayerKit
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
// (Optional) Global SDK configuration
// AliPlayerKit.setOnGlobalInitBlock {
// Global configuration is executed only once after setup
// }
// Initialize AliPlayerKit
AliPlayerKit.setup()
return true
}O método
[AliPlayerKit setup]usadispatch_onceinternamente para garantir idempotência. É seguro chamá-lo várias vezes; chamadas subsequentes são ignoradas.Defina
setOnGlobalInitBlock:antes desetuppara aplicar configurações globais do SDK.Verifique o status de inicialização chamando
[AliPlayerKit isInitialized].
Etapa 6: Verifique a integração
Use a lista de verificação a seguir para validar a integração:
O comando
pod installfoi concluído com sucesso, sem conflitos de dependência.A licença está configurada corretamente.
O método
[AliPlayerKit setup]é chamado no AppDelegate.O projeto compila com sucesso (Cmd + B), sem erros de linker.
Opção 2: Integração no nível de cena
O nível de cena (PlayerKitScenes) baseia-se no nível de componente para fornecer soluções padrão de reprodução para cenários de negócios específicos. Cada módulo de cena é independente e pode ser importado conforme necessário.
Antes de integrar o nível de cena, conclua todas as etapas da Opção 1: Integração no nível de componente.
Etapa 1: Copie o módulo para o projeto
Copie o diretório PlayerKitScenes/ para o projeto, no mesmo nível do PlayerKit/:
YourProject/
├── YourApp/
├── PlayerKit/ # Component level (already copied)
├── PlayerKitScenes/ # ← Copy this directory
│ ├── PlayerKitScenes.podspec
│ ├── SceneCommon/
│ ├── SceneLongVideo/
│ ├── SceneShortVideo/
│ ├── SceneLive/
│ └── ScenePlaylist/
└── Podfile
Etapa 2: Configure o Podfile
No Podfile, referencie o PlayerKitScenes pelo caminho local:
target 'YourApp' do
use_frameworks!
# Core component (required)
pod 'PlayerKit', :path => './PlayerKit'
pod 'AliPlayerSDK_iOS', '~> 7.15.0'
# Playback scene solutions (import as needed)
pod 'PlayerKitScenes', :path => './PlayerKitScenes'
# Or, select individual scenes as needed:
# pod 'PlayerKitScenes/SceneLongVideo', :path => './PlayerKitScenes'
# pod 'PlayerKitScenes/SceneShortVideo', :path => './PlayerKitScenes'
# pod 'PlayerKitScenes/SceneLive', :path => './PlayerKitScenes'
# pod 'PlayerKitScenes/ScenePlaylist', :path => './PlayerKitScenes'
end
Descrições dos módulos de cena:
|
Módulo de cena |
Pod subspec |
Descrição |
|
SceneCommon |
PlayerKitScenes/SceneCommon |
Módulo comum para cenas. Incluído automaticamente como dependência base. |
|
SceneLongVideo |
PlayerKitScenes/SceneLongVideo |
Destinado a cenários de vídeos de média e longa duração. |
|
SceneShortVideo |
PlayerKitScenes/SceneShortVideo |
Projetado para cenários de vídeos curtos. |
|
SceneLive |
PlayerKitScenes/SceneLive |
Focado em cenários de transmissão ao vivo. |
|
ScenePlaylist |
PlayerKitScenes/ScenePlaylist |
Indicado para cenários de reprodução de playlist. |
Etapa 3: Instale e verifique
pod install
Se o projeto compilar com sucesso, a integração no nível de cena estará concluída.
Atualização do SDK
O AliPlayerKit depende dos seguintes SDKs subjacentes:
|
SDK |
Descrição |
|
AliPlayerSDK_iOS |
SDK do Alibaba Cloud Player, que fornece capacidades principais de reprodução, como decodificação de vídeo, renderização e controle de reprodução. |
|
RtsSDK |
SDK do Alibaba Cloud RTS, que oferece reprodução de transmissão ao vivo com latência ultrabaixa (opcional). |
Informações de versão
Em tempo de execução, chame
[AliPlayerKit getSdkVersion]para obter o número da versão do SDK subjacente.Chame
[AliPlayerKit getPlayerKitVersion]para obter o número da versão do componente AliPlayerKit.Consulte Baixe Player SDK e iOS SDK Release History.
Etapas de atualização
-
Confirme a compatibilidade de versões.
Antes de atualizar, revise o histórico de lançamentos e o changelog do SDK para verificar se a versão alvo contém alterações disruptivas.
-
Modifique o número da versão no Podfile.
pod 'AliPlayerSDK_iOS', '~> x.x.x' # Replace with the target version # RTS (if you use live streaming scenarios) # pod 'AliPlayerSDK_iOS_ARTC', '~> x.x.x' # pod 'RtsSDK', '~> x.x.x' -
Execute o comando de atualização.
pod update AliPlayerSDK_iOS -
Verifique a atualização.
O projeto compila com sucesso, sem erros de linker.
Valide as funções principais de reprodução: play, pause, seek, velocidade de reprodução, etc.
Teste cenários específicos de reprodução, como transmissão ao vivo com latência ultrabaixa via RTS.
Após uma atualização, recomendamos registrar os números de versão anteriores e posteriores. Isso facilita a solução de problemas futuros e o rastreamento de versões.
Perguntas frequentes
Problemas de licença
Problema: O player relata erro de licença ou exibe tela preta.
As causas comuns incluem arquivo de certificado adicionado incorretamente, License Key incompatível, Bundle ID diferente daquele vinculado à licença ou licença expirada. Para mais detalhes, consulte Gerencie License.
Conflitos de dependência
Problema: O comando pod install falha com conflito de dependência.
Solução de problemas: Esse conflito pode ocorrer se o projeto e o PlayerKit dependerem de versões diferentes do SDWebImage. Execute pod update para resolver o conflito. Se o problema persistir, execute pod repo update para atualizar o índice do repositório local antes de tentar novamente.
Problemas de inicialização
Problema: A reprodução não funciona corretamente após chamar [AliPlayerKit setup].
Solução de problemas:
Garanta que a chamada seja feita em
application:didFinishLaunchingWithOptions:dentro doAppDelegate.Confirme se a licença está configurada corretamente. Para mais detalhes, consulte Gerencie License.
Chame
[AliPlayerKit isInitialized]para confirmar que a inicialização foi bem-sucedida.O método
setupé idempotente (usadispatch_once). Chamadas repetidas são seguras e não geram exceções.Se precisar injetar configurações globais do SDK, confirme se
setOnGlobalInitBlock:foi definido antes da chamada desetup.
Depuração com logs
Se encontrar problemas de reprodução, ative os logs de depuração para auxiliar na solução de problemas:
// Enable debug mode
[AliPlayerKit setDebugModeEnabled:YES];
// Set the log level to Verbose for the most detailed output
[AliPlayerKit setLogLevel:LogLevelVerbose];
Para detalhes sobre como usar o sistema de logs, consulte Logging System.