Este tópico descreve as etapas e os pré-requisitos para integrar o AliPlayerKit ao seu projeto.
Este documento apresenta etapas claras para análise e execução por IA. Use-o como uma Skill para auxiliar seu fluxo de trabalho de desenvolvimento. Recomendamos usar IA para ajudar na integração do AliPlayerKit.
Visão geral da integração
Certifique-se de ter baixado o projeto do repositório AliPlayerKit.
O AliPlayerKit oferece duas opções de integração. Escolha a que melhor atende às suas necessidades de negócios. Em breve, lançaremos Skills dedicadas para melhorar o suporte à integração:
|
Solução de integração |
Descrição |
Caso de uso |
|
Integração no nível de componente |
Integre o módulo principal |
Ideal para personalizar a interface do player ou controlar o comportamento de reprodução com flexibilidade. |
|
Integração no nível de cenário |
Integre módulos de cenário sobre a camada de componentes. |
Indicada para implementar rapidamente cenários de reprodução padrão. |
A camada de cenário depende da camada de componente. Se optar pela integração no nível de cenário, conclua primeiro a integração no nível de componente.
Pré-requisitos
Configure seu ambiente de desenvolvimento
Antes de usar o AliPlayerKit, verifique se seu ambiente de desenvolvimento atende aos seguintes requisitos:
-
JDK 11
Configure o JDK em Preferences → Build, Execution, Deployment → Build Tools → Gradle → Gradle JDK.
Selecione a versão 11. Caso a versão 11 não esteja disponível, atualize o Android Studio.
-
Ambiente de desenvolvimento Android
Instale a versão mais recente do Android Studio.
Configure o Android SDK. O nível mínimo de API compatível é 21 (Android 5.0).
Recomendamos usar compileSdkVersion 31 ou superior.
Use Gradle versão 7,0 ou superior.
Prepare sua licença
Obtenha o certificado e a chave de licença do player para o ApsaraVideo Player SDK. Para mais informações, consulte Gerencie Licenças.
Sem a configuração correta da licença, o player não funcionará e poderá gerar uma exceção de autorização.
Opção 1: Integração no nível de componente
O módulo principal playerkit fornece um componente de interface do player pronto para uso e configurável. Ele oferece suporte a reprodução básica e interações comuns.
Etapa 1: Copie o módulo de componente
Copie o diretório do módulo principal playerkit (biblioteca) para o seu projeto:
# Copy the playerkit core module to your project root directory
# Note: Copy only the playerkit directory—not the entire project or example modules such as playerkit-examples or playerkit-scenes
cp -r playerkit /path/to/your/project/
Etapa 2: Configure seu projeto Gradle
Configure o repositório Maven
Adicione o repositório Maven do Alibaba Cloud ao seu projeto:
repositories {
// aliyun maven
maven { url "https://maven.aliyun.com/repository/releases" }
}repositories {
// aliyun maven
maven("https://maven.aliyun.com/repository/releases")
}Adicione a referência do módulo
include ':playerkit'include(":playerkit")Adicione a dependência do módulo
dependencies {
// AliPlayerKit core module: Provides an out-of-the-box, configurable player UI component. Supports basic playback and common interactions.
implementation project(':playerkit')
}dependencies {
// AliPlayerKit core module: Provides an out-of-the-box, configurable player UI component. Supports basic playback and common interactions.
implementation(project(":playerkit"))
}Etapa 3: Configure sua licença
Adicione o arquivo de certificado de licença
Coloque o arquivo de certificado de licença no diretório src/main/assets/cert/ do módulo do seu aplicativo.
Adicione a configuração de licença
Adicione a seguinte configuração ao arquivo AndroidManifest.xml do módulo do seu aplicativo:
<meta-data
android:name="com.aliyun.alivc_license.licensekey"
android:value="Your License Key" />
<meta-data
android:name="com.aliyun.alivc_license.licensefile"
android:value="assets/cert/license.crt" />
Verifique se o elemento
<meta-data>está dentro do elemento<application>e se o atributonameestá correto.Se o service do ApsaraVideo Player SDK estiver implantado fora da China, consulte Integrate Licenses on Android para obter instruções de configuração.
Para um exemplo completo de configuração, consulte o módulo
demo-app.
Etapa 4: Verifique a integração
Sincronize e compile seu projeto
Sincronize o Gradle e compile o projeto para confirmar se as dependências e configurações do módulo estão corretas:
./gradlew clean assemble --stacktrace --info
Se a compilação for bem-sucedida e nenhum erro de dependência aparecer, o módulo playerkit estará referenciado corretamente.
Registre a versão da integração (Recomendado)
Após concluir a integração e obter uma compilação bem-sucedida, execute git commit para registrar o ID do commit atual do código-fonte do componente. Esse registro serve como linha de base para a versão da integração. Ajuda a rastrear futuras atualizações ou alterações no source. Também auxilia no controle de qualidade durante a integração e acelera a solução de problemas ou o suporte técnico. Por exemplo:
git add .
git commit -m "feat: integrate AliPlayerKit module (source commit: 2c30d92)"
Opção 2: Integração no nível de cenário
A camada de cenário fornece exemplos de reprodução para casos de negócios específicos, como vídeo longo, vídeo curto, transmissão ao vivo e reprodução em lista. Cada módulo de cenário é um exemplo independente. Escolha os módulos correspondentes às suas necessidades de negócios e integre-os diretamente.
Pré-requisito: A camada de cenário depende da camada de componente. Conclua a integração no nível de componente antes de iniciar a integração no nível de cenário.
Etapa 1: Copie os módulos de cenário
Copie os módulos de cenário necessários para o seu projeto conforme suas necessidades de negócios:
|
Módulo |
Descrição |
|
|
Módulo de cenário comum. Inclui constantes de vídeo de exemplo. Ignore esta etapa se implementar sua própria fonte de vídeo. |
|
|
Exemplo de cenário de vídeo longo. |
|
|
Exemplo de cenário de vídeo curto. |
|
|
Exemplo de cenário de transmissão ao vivo. |
|
|
Exemplo de cenário de reprodução em lista. |
# scene-common includes sample video constants. Skip it if you implement your own video source.
cp -r playerkit-scenes/scene-common /path/to/your/project/
# Choose other scenario modules as needed.
cp -r playerkit-scenes/scene-longvideo /path/to/your/project/
cp -r playerkit-scenes/scene-live /path/to/your/project/
# ...
Não copie o módulo
demo-settings. Ele serve apenas para fins de demonstração e fornece recursos como configuração de código QR e armazenamento de links de reprodução.O módulo
scene-commonfornece constantes de vídeo de exemplo. Ignore este módulo se já tiver implementado sua própria lógica de fonte de vídeo.
Etapa 2 (Opcional): Resolva as dependências do módulo
Os arquivos build.gradle dos módulos de cenário dependem de demo-settings e scene-common. Ajuste essas dependências conforme suas necessidades:
|
Módulo |
Dependência |
Ação durante a integração |
|
|
|
Remova |
|
|
|
Remova |
|
|
|
Mantenha |
|
|
|
Mantenha |
Remova a dependência demo-settings
Os módulos scene-longvideo e scene-live referenciam demo-settings em seus arquivos build.gradle. Remova essas referências:
dependencies {
// ...
// Delete this line: demo-settings is used only for demos.
// implementation project(':demo-settings')
}
Gerencie a dependência scene-common
O módulo scene-common fornece constantes de vídeo de exemplo, como SceneConstants. Você pode optar por:
Manter a dependência: Use os vídeos de exemplo para testes.
Remover a dependência: Se implementar sua própria fonte de vídeo, exclua a dependência do arquivo
build.gradle.
dependencies {
// ...
// Comment out or delete this line if you implement your own video source.
// implementation project(':scene-common')
}
Substitua o código-fonte do vídeo
Após remover a dependência demo-settings ou scene-common, atualize a lógica de fonte de vídeo na sua Activity:
Lógica original de fonte de vídeo:
// ===== Original code (uses demo-settings / scene-common)=====
import com.aliyun.playerkit.example.settings.link.LinkConstants;
import com.aliyun.playerkit.example.settings.storage.SPManager;
import com.aliyun.playerkit.scenes.common.SceneConstants;
private String getVideoVid() {
String savedVid = SPManager.getInstance().getString(LinkConstants.KEY_VIDEO_VID);
return StringUtil.isNotEmpty(savedVid) ? savedVid : SceneConstants.LANDSCAPE_SAMPLE_VID;
}
Lógica atualizada de fonte de vídeo:
// ===== Updated (use your video source)=====
private String getVideoVid() {
return "Your video Vid"; // Or fetch it from your business API.
}
private String getVideoPlayAuth() {
return "Your PlayAuth"; // Or fetch it from your business API.
}
Etapa 3: Configure seu projeto Gradle
Adicione referências de módulo
include ':scene-common'
include ':scene-longvideo'
// Add other scenario modules as needed...include(":scene-common")
include(":scene-longvideo")
// Add other scenario modules as needed...Adicione dependências de módulo
dependencies {
// AliPlayerKit scenario modules: Built on the AliPlayerKit core component. Provide out-of-the-box standard playback solutions.
// Long-form video scenario module: Provides a complete solution for long-form video playback.
implementation project(':scene-longvideo')
}dependencies {
// AliPlayerKit scenario modules: Built on the AliPlayerKit core component. Provide out-of-the-box standard playback solutions.
// Long-form video scenario module: Provides a complete solution for long-form video playback.
implementation(project(":scene-longvideo"))
}Etapa 4: Verifique a integração
Sincronize o Gradle e compile o projeto para confirmar se as dependências e configurações do módulo estão corretas:
./gradlew clean assemble --stacktrace --info
Após integrar os módulos de cenário, execute git commit para registrar o ID do commit. Isso facilita o rastreamento futuro.
(Opcional) Guia de atualização do SDK
O AliPlayerKit depende dos seguintes SDKs:
|
SDK |
Descrição |
|
AliPlayer SDK |
ApsaraVideo Player SDK. Fornece capacidades essenciais de reprodução, como decodificação de vídeo, renderização e controle de reprodução. |
|
RtsSDK |
Alibaba Cloud RTS SDK. Permite reprodução ao vivo de Real-Time Streaming (RTS) com latência ultrabaixa, na ordem de milissegundos. |
Para atualizar as versões subjacentes do SDK, siga estas etapas.
Visualize as informações de versão
As versões atuais do SDK das quais o AliPlayerKit depende estão definidas no arquivo playerkit/build.gradle.
Consulte as versões mais recentes e a documentação dos SDKs relacionados nestes links:
Etapas de atualização
-
Verifique a compatibilidade de versões
Antes de atualizar, revise o histórico de lançamentos e o log de atualizações do SDK. Verifique se a versão alvo introduz alterações disruptivas ou outros ajustes de compatibilidade.
-
Atualize o número da versão
No arquivo
playerkit/build.gradle, atualize os números de versão do SDK:def player_sdk_version = "x.x.x" // Replace with your target version api "com.aliyun.sdk.android:AliyunPlayer:$player_sdk_version-full" // RtsSDK version must match the player SDK version. def rts_sdk_version = "x.x.x" // Replace with your target version api "com.aliyun.rts.android:RtsSDK:$rts_sdk_version" -
Verifique a atualização:
-
Limpe e recompile seu projeto:
./gradlew clean assemble --stacktrace --info Teste as funções principais de reprodução: play, pause, seek e velocidade de reprodução.
Teste cenários específicos de reprodução, como a transmissão ao vivo de Real-Time Streaming (RTS) com latência ultrabaixa.
-
Após atualizar o SDK, registre os números das versões antiga e nova. Isso auxilia na solução de problemas e no rastreamento de versões.
Perguntas frequentes
Problemas de licença
Problema: O player exibe um erro de licença.
Solução:
Confirme se o certificado de licença e a chave foram configurados corretamente.
Verifique se a licença expirou.
Certifique-se de que o nome do pacote do aplicativo corresponde ao nome do pacote vinculado à licença.
Sem a configuração correta da licença, a reprodução falhará após a integração. Pode ocorrer tela preta ou outro comportamento anormal.
Conflitos de dependência
Problema: A sincronização do Gradle falha com um erro de conflito de dependência.
Solução:
Verifique se o projeto já contém versões diferentes da mesma dependência.
Use
excludepara remover dependências conflitantes.Padronize as versões das dependências em todo o projeto.
Caso o projeto já use a mesma biblioteca de terceiros, ajuste o número da versão no módulo playerkit para garantir compatibilidade e evitar conflitos.
Falha na inicialização
Problema: A chamada de AliPlayerKit.init() gera uma exceção.
Solução:
Confirme se o Context não é nulo.
Chame o método em
Application.onCreate().Verifique se há chamadas duplicadas. Chamadas duplicadas são ignoradas e não geram exceções.
Problemas de configuração de versão do SDK
Problema: A compilação falha com um erro de incompatibilidade de versão do SDK.
Solução:
Garanta que as configurações do módulo playerkit, como compileSdkVersion, buildToolsVersion, minSdkVersion e targetSdkVersion, correspondam às definições do seu projeto.
Problemas de namespace
Problema: Após copiar os módulos, a compilação falha com erros relacionados ao namespace.
Solução:
O arquivo build.gradle de cada módulo declara um namespace por padrão para oferecer suporte ao Android Gradle Plugin (AGP) 7.x e superior. Ajuste essa configuração conforme a versão do seu AGP:
|
Versão do AGP |
Requisito de configuração |
|
≥ 8.0 (por exemplo, 8.3.2) |
Mantenha a declaração de namespace no |
|
7.x (por exemplo, 7.4.2) |
A declaração de namespace é opcional. Recomendamos mantê-la para facilitar futuras atualizações. |
|
< 7.0 (por exemplo, 4.0.1) |
Comente ou exclua a declaração de namespace no |
Local da configuração: Dentro do bloco android {} no arquivo build.gradle de cada módulo.
android {
/// Integration FAQ
/// Notes about namespace declaration:
/// - AGP version ≥ 8.0 (for example, 8.3.2): namespace must be declared.
/// - AGP version < 7.0 (for example, 4.0.1): remove namespace declaration. Use the package attribute in AndroidManifest.xml.
/// - AGP version 7.x: namespace declaration is optional. We recommend declaring it to support future upgrades.
namespace = "com.aliyun.playerkit"
// ...
}
Emulador não suportado
Problema: Ocorre um erro ao executar em um emulador.
Solução:
O ApsaraVideo Player SDK não suporta emuladores. Teste em um dispositivo físico após a integração.
Conflito de prioridade de repositório
Problema: O Gradle relata um conflito ao resolver prioridades de repositório.
Solução:
Para resolver isso, declare os repositórios no seu arquivo settings.gradle.