Tutoriel sur l'archivage (Android)
Vue d'ensemble
L'API d'archivage d'OpenTok vous permet d'enregistrer les flux audio-vidéo d'une session au format MP4. Vous utilisez du code côté serveur pour démarrer et arrêter les enregistrements d'archivage.
Configuration du serveur
Pour archiver les sessions OpenTok (c'est-à-dire pour enregistrer les sessions), vous devez disposer d'un serveur Configuration. Il existe de nombreuses façons de mettre en place un système d'archivage à l'aide d'un serveur, mais dans le cadre de ce tutoriel, nous allons installer rapidement un serveur PHP simple.
Pour lancer le serveur, il suffit de cliquer sur le bouton « Heroku » ci-dessous. Vous serez alors redirigé vers le site web de Heroku et invité à saisir votre clé API OpenTok et votre secret API — vous pouvez retrouver ces informations sur la page de votre projet dans votre Video API Account. Si vous n'avez pas d'account Heroku, vous devrez vous inscrire (c'est gratuit).
Envie de découvrir le code ? Le bouton ci-dessus lance le code du serveur à partir du apprentissage-opentok-php Dépôt GitHub. Rendez-vous sur ce dépôt pour consulter le code ainsi que la documentation complémentaire ; vous pouvez même créer une branche dérivée du dépôt et y apporter des modifications avant le déploiement.
Configuration de votre projet
Pour suivre ce tutoriel, clonez le dépôt OpenTok Exemple d'application Android référentiel sur GitHub :
git clone https://github.com/Vonage/vonage-video-android-sdk-samples.git
Ensuite, ouvrez le Archivage - Java projet dans Android Studio.
Remarque : Ce tutoriel traite de la version Java de l'application exemple Android. Pour une version Kotlin accompagnée d'une documentation, consultez la page Exemples d'applications Android.
Important : Vous ne pouvez archiver que les sessions qui utilisent le Routeur multimédia OpenTok (sessions dont le mode « médias » est défini sur « routé »). La valeur par défaut apprentissage-opentok-php Le code utilisé par cette application didactique repose sur des sessions routées.
Découverte du code
Remarque : L'application exemple d'archivage Android s'appuie sur le Chat vidéo de base app.
Dans le cadre de la ServerConfig fichier, vous définissez le CHAT_SERVER_URL propriété à l'URL de base :
public static final String CHAT_SERVER_URL = "https://YOURAPPNAME.herokuapp.com";
Les points de terminaison du service Web que l'application appelle pour lancer l'enregistrement d'archive, arrêter l'enregistrement et lire la vidéo enregistrée sont définis dans le APIService l'interface :
public interface APIService {
@GET("session")
Call getSession();
@POST("archive/start")
@Headers("Content-Type: application/json")
Call startArchive(@Body StartArchiveRequest startArchiveRequest);
@POST("archive/{archiveId}/stop")
Call stopArchive(@Path("archiveId") String archiveId);
}
Lorsque l'utilisateur sélectionne le start archive, stop archiveet play archive éléments du menu de la barre d'actions ou du menu des options, l'application appelle la fonction startArchive() et stopArchive()et playArchive() méthodes. Ces méthodes appellent en interne les services Web définis ci-dessus :
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle app bar item clicks here. The app bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
switch (item.getItemId()) {
case R.id.action_settings:
return true;
case R.id.action_start_archive:
startArchive();
return true;
case R.id.action_stop_archive:
stopArchive();
return true;
case R.id.action_play_archive:
playArchive();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Les MainActivity La classe comprend un archiveListener propriété qui implémente l'interface Session.ArchiveListener interface fournissant des fonctions de rappel pour la gestion des événements liés aux archives : onArchiveStarted et onArchiveStopped.
Lorsque l'utilisateur clique sur le start archive bouton, l'application appelle archive/start point de terminaison via le startArchive() méthode. Lorsque l'enregistrement d'archive démarre, le onArchiveStarted() la fonction de rappel est déclenchée :
@Override
public void onArchiveStarted(Session session, String archiveId, String archiveName) {
currentArchiveId = archiveId;
setStopArchiveEnabled(true);
archivingIndicatorView.setVisibility(View.VISIBLE);
}
Les onArchiveStarted() Cette méthode enregistre l'identifiant de l'archive dans un currentArchiveId propriété. La méthode appelle également setStopArchiveEnabled(true), ce qui provoque la stop recording élément de menu à afficher. Et cela provoque archivingIndicatorView à afficher (un point rouge sur la vidéo).
Lorsque l'utilisateur clique sur le stop archive bouton, l'application appelle archive/stop point de terminaison via le stopArchive() méthode. Lorsque l'enregistrement d'archive s'arrête, le onArchiveStopped() la fonction de rappel est déclenchée :
@Override
public void onArchiveStopped(Session session, String archiveId) {
playableArchiveId = archiveId;
currentArchiveId = null;
setPlayArchiveEnabled(true);
setStartArchiveEnabled(true);
archivingIndicatorView.setVisibility(View.INVISIBLE);
}
Les onArchiveStopped() Cette méthode enregistre l'identifiant de l'archive dans un playableArchiveId propriété et ensembles currentArchiveId à null. La méthode appelle également setPlayArchiveEnabled(false), ce qui désactive l'option de menu « Play Archive » et appelle setStartArchiveEnabled(true) pour activer l'option de menu « Démarrer l'archivage ». Cela provoque alors la archivingIndicatorView à masquer.
Lorsque l'utilisateur clique sur le play archive bouton, le playArchive() Cette méthode ouvre une page Web (dans le navigateur Web de l'appareil) qui affiche l'enregistrement archivé.
Notes :
-
Dans la plupart des applications, l'accès à l'enregistrement d'archive ne serait pas accordé à chaque utilisateur final.
-
Vous pouvez avoir des sessions automatiquement archivées, qui sont enregistrées chaque fois qu'un client commence à publier un flux.
-
Vous devrez configurer une cible Amazon S3 ou Microsoft Azure pour le stockage de vos enregistrements d'archives.
Pour plus d'informations sur l'archivage, voir la page Guide du développeur sur l'archivage OpenTok.
Félicitations ! Vous venez de terminer le tutoriel sur l'archivage sous Android.
Vous pouvez continuer à tester et à modifier le code que vous avez développé ici, ou consulter le Prochaines étapes ci-dessous.
Prochaines étapes
Une fois que vous aurez terminé cette étape, poursuivez le développement et l'amélioration de votre application OpenTok à l'aide des ressources utiles suivantes :
- Notions de base sur la Video API — Si ce n'est pas déjà fait, prenez quelques minutes pour découvrir le fonctionnement exact d'OpenTok
- Exemples de code — une sélection d'applications types qui explorent diverses fonctionnalités et cas d'utilisation d'OpenTok
- Guides du développeur — documentation détaillée sur toutes les fonctionnalités d'OpenTok
- Tutoriels supplémentaires — guides pas à pas pour la mise en œuvre d'autres fonctionnalités et cas d'utilisation d'OpenTok
- Référence du SDK Android — découvrez les méthodes et les événements associés au SDK Android d'OpenTok