Ce document explique comment intégrer rapidement AliPlayerKit, depuis l'initialisation globale jusqu'à l'intégration des couches composant et scène.
Avant de commencer, assurez-vous d'avoir configuré votre environnement et ajouté les dépendances requises comme décrit dans Préparatifs d'intégration.
Conseil compatible avec l'IA : ce document est structuré pour faciliter l'analyse par l'IA. Vous pouvez l'utiliser en tant que Skills pour accélérer votre flux de travail de développement.
L'API minimaliste d'AliPlayerKit vous permet d'intégrer rapidement des fonctionnalités de lecture vidéo avec peu de code.
Choisissez une option d'intégration
AliPlayerKit repose sur une architecture en couches, proposant à la fois une intégration au niveau des composants et au niveau des scènes. Choisissez l'option qui correspond le mieux à vos besoins métier :
|
Option d'intégration |
Module |
Description |
Cas d'utilisation |
|
Intégration de la couche composant |
|
Utilise le module central |
Nécessite une interface utilisateur de lecteur personnalisée ou un contrôle flexible du comportement de lecture. |
|
Intégration de la couche scène |
|
Fournit des solutions complètes et préconçues pour les scénarios courants, construites sur la couche composant. |
Implémentez rapidement des scénarios de lecture standard, tels que les vidéos longues, les vidéos courtes et la diffusion en direct. |
La couche scène dépend de la couche composant ; vous devez donc d'abord effectuer l'intégration de la couche composant.
Initialisation globale
Appelez AliPlayerKit.init() dans Application.onCreate() pour l'initialisation globale. Cette méthode ne doit être appelée qu'une seule fois au cours du cycle de vie de l'application afin d'initialiser le cœur du lecteur et les paramètres globaux.
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)
}
}AliPlayerKit propose d'autres méthodes de configuration globale, telles que setPlayerViewType() et setDisableScreenshot(). Pour plus de détails, consultez la Référence API.
Option 1 : Intégration de la couche composant
La couche composant (le module playerkit) fournit un composant d'interface utilisateur de lecteur configurable prêt à l'emploi. Suivez ces étapes pour implémenter la fonctionnalité de lecture sur chaque page nécessitant la lecture de vidéos.
Étape 1 : Ajoutez la vue du lecteur
Ajoutez AliPlayerView à votre fichier XML de mise en page :
<!-- Player component view -->
<com.aliyun.playerkit.AliPlayerView
android:id="@+id/player_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
Placez AliPlayerView directement dans votre mise en page, en définissant sa largeur et sa hauteur selon vos besoins. Si un conteneur externe est requis (par exemple, pour prendre en charge le basculement en plein écran), vous pouvez l'encapsuler dans un FrameLayout ou un autre conteneur.
Étape 2 : Liez le contrôleur et démarrez la lecture
Si votre application prend en charge le basculement en plein écran, vous devez configurer l'attribut android:configChanges pour l'Activity du lecteur dans votre fichier AndroidManifest.xml. Cela empêche la recréation de l'Activity lors de la rotation de l'écran, ce qui entraînerait sinon la perte de l'état de lecture.
<application>
<activity
android:name=".VideoPlayerActivity"
android:configChanges="orientation|screenSize"
...>
</activity>
</application>
Après cette configuration, la rotation de l'écran ne déclenchera pas la recréation de l'Activity, préservant ainsi l'état du lecteur.
Dans votre Activity ou Fragment, créez le contrôleur, configurez les données et liez-le à la vue :
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()
}
}Si vous ne disposez pas encore d'ID vidéo ni d'identifiants de lecture, vous pouvez utiliser les exemples de données fournis dans SceneConstants.java pour exécuter rapidement l'exemple à des fins de test.
Étape 3 (Facultative) : Gérez le bouton Retour
Si votre application prend en charge la lecture en plein écran, vous devez gérer l'événement du bouton Retour dans votre 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.
}Pour obtenir des descriptions complètes de l'API de chaque composant, consultez la Référence API. Pour le flux d'appel de l'API principale, reportez-vous aux Fonctionnalités principales.
Option 2 : Intégration de la couche scène
La couche scène fournit des solutions de lecture complètes pour des scénarios métier spécifiques, tels que les vidéos longues, les vidéos courtes et la diffusion en direct. La couche scène est construite sur la couche composant et est prête à l'emploi, sans nécessiter de développement supplémentaire.
Étape 1 : Choisissez un module de scène
Les modules de scène se trouvent dans le répertoire playerkit-scenes. Les modules disponibles incluent :
|
Module de scène |
Description |
|
|
Module de scène commun (requis). Les autres modules de scène en dépendent. |
|
|
Fournit une solution complète pour la lecture de vidéos longues. |
|
|
Fournit une solution complète pour la lecture de vidéos courtes avec défilement. |
|
|
Fournit une solution complète pour la lecture de diffusions en direct. |
|
|
Fournit une solution complète pour la lecture de listes de lecture. |
Étape 2 : Lancez la page de scène
Après avoir intégré un module de scène, vous pouvez lancer la page de scène de l'une des deux manières suivantes :
Méthode 1 : Navigation par 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éthode 2 : Navigation par schéma
Les modules de scène prennent en charge la navigation par schéma pour démarrer un scénario de lecture spécifique. Le schéma de chaque scénario est défini dans le fichier AndroidManifest.xml du module correspondant. Vous trouverez l'URL de schéma spécifique dans la balise <data> du filtre <intent-filter>.
Par exemple, si la configuration dans AndroidManifest.xml est la suivante :
<data
android:host="scenes"
android:path="/longvideo"
android:scheme="playerkit" />
Construisez l'URL du schéma comme suit :
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)Exemples et extensions
Vous avez désormais terminé l'intégration de base d'AliPlayerKit et implémenté la lecture vidéo.
Pour plus d'exemples, reportez-vous aux répertoires suivants :
playerkit-examples: Fournit des exemples d'utilisation pour les API courantes.playerkit-scenes: Fournit des solutions pour les scénarios de lecture typiques.