Este documento explica como integrar rapidamente o AliPlayerKit, desde a inicialização global até a integração nas camadas de componente e de cena.
Antes de começar, verifique se você configurou o ambiente e adicionou as dependências necessárias conforme descrito em Integration preparations.
Dica para IA: Este documento foi estruturado para facilitar a análise por inteligência artificial. Utilize-o como Skills para acelerar seu fluxo de desenvolvimento.
A API minimalista do AliPlayerKit permite integrar recursos de reprodução de vídeo com pouco código.
Escolha uma opção de integração
O AliPlayerKit utiliza uma arquitetura em camadas e oferece integração tanto na camada de componente quanto na camada de cena. Escolha a opção mais adequada às necessidades do seu negócio:
|
Opção de integração |
Módulo |
Descrição |
Caso de uso |
|
Integração na camada de componente |
|
Utiliza o módulo principal |
Ideal quando é necessária uma UI personalizada ou controle flexível sobre o comportamento de reprodução. |
|
Integração na camada de cena |
|
Oferece soluções completas e pré-construídas para cenários comuns, baseadas na camada de componente. |
Recomendado para implementar rapidamente cenários padrão, como vídeos longos, vídeos curtos e transmissões ao vivo. |
A camada de cena depende da camada de componente; portanto, conclua primeiro a integração da camada de componente.
Inicialização global
Chame AliPlayerKit.init() em Application.onCreate() para inicializar globalmente o sistema. Chame esse método apenas uma vez durante o ciclo de vida da aplicação para inicializar o núcleo do player e as configurações globais.
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// Initialize global settings for AliPlayerKit.
AliPlayerKit.init(this);
}
}class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
// Initialize global settings for AliPlayerKit.
AliPlayerKit.init(this)
}
}O AliPlayerKit fornece outros métodos de configuração global, como setPlayerViewType() e setDisableScreenshot(). Para mais detalhes, consulte API reference.
Opção 1: Integração na camada de componente
A camada de componente (módulo playerkit) oferece um componente de UI do player pronto para uso e configurável. Siga estas etapas para implementar a funcionalidade de reprodução em cada página que exija vídeo.
Etapa 1: Adicione a visualização do player
Adicione o AliPlayerView ao arquivo XML de layout:
<!-- Player component view -->
<com.aliyun.playerkit.AliPlayerView
android:id="@+id/player_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
Insira o AliPlayerView diretamente no layout e defina a largura e a altura conforme necessário. Se precisar de um contêiner externo (por exemplo, para suportar alternância para tela cheia), envolva-o em um FrameLayout ou outro contêiner adequado.
Etapa 2: Vincule o controlador e inicie a reprodução
Se sua aplicação suportar alternância para tela cheia, configure o atributo android:configChanges para a Activity do player no arquivo AndroidManifest.xml. Isso evita que a Activity seja recriada ao girar a tela, o que causaria a perda do estado de reprodução.
<application>
<activity
android:name=".VideoPlayerActivity"
android:configChanges="orientation|screenSize"
...>
</activity>
</application>
Com essa configuração, a rotação da tela não aciona a recriação da Activity e preserva o estado do player.
Na Activity ou no Fragment, crie o controlador, configure os dados e vincule-o à visualização:
public class VideoPlayerActivity extends AppCompatActivity {
private AliPlayerView playerView;
private AliPlayerController controller;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video_player);
// 1. Get the player view.
playerView = findViewById(R.id.player_view);
// 2. Create the player controller.
controller = new AliPlayerController(this);
// 3. Configure playback data (VidAuth is recommended).
AliPlayerModel model = new AliPlayerModel.Builder()
.videoSource(VideoSourceFactory.createVidAuthSource(
"your_video_id", // Video ID
"your_playback_credential" // Playback credential
))
.coverUrl("https://example.com/cover.jpg") // Replace with your actual cover image URL.
.videoTitle("Sample Video")
.autoPlay(true)
.build();
// 4. Bind the controller to the view.
playerView.attach(controller, model);
}
@Override
protected void onDestroy() {
super.onDestroy();
// 5. Detach and release resources.
playerView.detach();
}
}class VideoPlayerActivity : AppCompatActivity() {
private lateinit var playerView: AliPlayerView
private lateinit var controller: AliPlayerController
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_video_player)
// 1. Get the player view.
playerView = findViewById(R.id.player_view)
// 2. Create the player controller.
controller = AliPlayerController(this)
// 3. Configure playback data (VidAuth is recommended).
val model = AliPlayerModel.Builder()
.videoSource(VideoSourceFactory.createVidAuthSource(
"your_video_id", // Video ID
"your_playback_credential" // Playback credential
))
.coverUrl("https://example.com/cover.jpg") // Replace with your actual cover image URL.
.videoTitle("Sample Video")
.autoPlay(true)
.build()
// 4. Bind the controller to the view.
playerView.attach(controller, model)
}
override fun onDestroy() {
super.onDestroy()
// 5. Detach and release resources.
playerView.detach()
}
}Caso ainda não possua um ID de vídeo e uma credencial de reprodução, utilize os dados de exemplo disponíveis em SceneConstants.java para executar rapidamente o exemplo e testar a integração.
Etapa 3 (Opcional): Trate o botão Voltar
Se sua aplicação suportar reprodução em tela cheia, trate o evento do botão Voltar na Activity:
@Override
public void onBackPressed() {
// If in full screen mode, exit full screen.
if (playerView.onBackPressed()) {
return; // Event handled, do not perform the default action.
}
super.onBackPressed(); // Event not handled, perform the default action.
}@Deprecated("Deprecated in Java")
override fun onBackPressed() {
// If in full screen mode, exit full screen.
if (playerView.onBackPressed()) {
return // Event handled, do not perform the default action.
}
super.onBackPressed() // Event not handled, perform the default action.
}Para descrições completas da API de cada componente, consulte API reference. Para o fluxo de chamadas da API principal, visualize Core capabilities.
Opção 2: Integração na camada de cena
A camada de cena oferece soluções completas de reprodução para cenários específicos de negócio, como vídeos longos, vídeos curtos e transmissões ao vivo. Construída sobre a camada de componente, ela está pronta para uso imediato, sem necessidade de desenvolvimento adicional.
Etapa 1: Escolha um módulo de cena
Os módulos de cena estão localizados no diretório playerkit-scenes. Os módulos disponíveis incluem:
|
Módulo de cena |
Descrição |
|
|
Módulo comum de cena (obrigatório). Outros módulos de cena dependem dele. |
|
|
Fornece uma solução completa para reprodução de vídeos longos. |
|
|
Oferece uma solução completa para reprodução de vídeos curtos com navegação por deslize. |
|
|
Disponibiliza uma solução completa para reprodução de transmissões ao vivo. |
|
|
Apresenta uma solução completa para reprodução de listas de vídeos. |
Etapa 2: Inicie a página da cena
Após integrar um módulo de cena, inicie a página correspondente de uma das duas formas abaixo:
Método 1: Navegação por Intent
// Navigate to the long-form video scenario.
Intent intent = new Intent(this, LongVideoActivity.class);
startActivity(intent);// Navigate to the long-form video scenario.
val intent = Intent(this, LongVideoActivity::class.java)
startActivity(intent)Método 2: Navegação por Schema
Os módulos de cena suportam navegação por schema para iniciar um cenário específico de reprodução. O schema de cada cenário é definido no AndroidManifest.xml do módulo correspondente. Encontre a URL específica do schema dentro da tag <data> do <intent-filter>.
Por exemplo, se a configuração no AndroidManifest.xml for a seguinte:
<data
android:host="scenes"
android:path="/longvideo"
android:scheme="playerkit" />
Construa a URL do schema da seguinte forma:
playerkit://scenes/longvideo
// Navigate to the target scenario (replace with the actual schema URL).
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("your_schema_url_here"));
startActivity(intent);// Navigate to the target scenario (replace with the actual schema URL).
val intent = Intent(Intent.ACTION_VIEW).apply {
data = Uri.parse("your_schema_url_here")
}
startActivity(intent)Exemplos e extensões
Você concluiu a integração básica do AliPlayerKit e implementou a reprodução de vídeo.
Para mais exemplos, consulte os seguintes diretórios:
playerkit-examples: Contém exemplos de uso para APIs comuns.playerkit-scenes: Disponibiliza soluções para cenários típicos de reprodução.