Tutorial sobre el archivado (Android)
Visión general
La API de archivado de OpenTok te permite grabar las transmisiones de audio y vídeo de una sesión en archivos MP4. Para iniciar y detener las grabaciones de archivado, se utiliza código del lado del servidor.
Configuración del servidor
Para archivar sesiones de OpenTok (es decir, para guardar las grabaciones de las sesiones), es necesario disponer de un servidor Configuración. Hay muchas formas de implementar el archivado con un servidor, pero para este tutorial vamos a poner en marcha rápidamente un servidor PHP sencillo.
Para iniciar el servidor, solo tienes que hacer clic en el botón de Heroku que aparece a continuación; en ese momento, se te redirigirá a la página web de Heroku y se te pedirá que introduzcas tu clave API y tu secreto API de OpenTok; puedes encontrar estos valores en la página de tu proyecto en tu Account de la Video API. Si no tienes un Account de Heroku, tendrás que registrarte (es gratis).
¿Quieres echar un vistazo al código? El botón de arriba ejecuta el código del servidor desde el aprender-opentok-php Repositorio de GitHub. Visita el repositorio para revisar el código y consultar la documentación adicional; incluso puedes crear una bifurcación del repositorio y realizar cambios antes de la implementación.
Configuración de tu proyecto
Para seguir este tutorial, clona el repositorio de OpenTok Aplicación de ejemplo para Android repositorio en GitHub:
git clone https://github.com/Vonage/vonage-video-android-sdk-samples.git
A continuación, abre el Archivado - Java proyecto en Android Studio.
Nota: En este tutorial se explica la versión en Java de la aplicación de ejemplo para Android. Para ver una versión en Kotlin con documentación, consulta el Repo de aplicaciones de ejemplo para Android.
Importante: Solo puedes archivar las sesiones que utilicen el OpenTok Media Router (sesiones con el modo de medios configurado en «enrutado»). El valor por defecto aprender-opentok-php El código utilizado por esta aplicación tutorial emplea sesiones enrutadas.
Explorar el código
Nota: La aplicación de ejemplo de archivado para Android se basa en el Videochat básico app.
En el ServerConfig archivo, se configura el CHAT_SERVER_URL propiedad de la URL base:
public static final String CHAT_SERVER_URL = "https://YOURAPPNAME.herokuapp.com";
Los puntos finales del servicio web al que recurre la aplicación para iniciar la grabación en archivo, detener la grabación y reproducir el vídeo grabado se definen en el APIService interfaz:
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);
}
Cuando el usuario selecciona el start archive, stop archivey play archive elementos del menú de la barra de acciones o del menú de opciones, la aplicación llama a la startArchive() y stopArchive()y playArchive() métodos. Estos métodos llaman internamente a los servicios web definidos anteriormente:
@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);
}
}
El MainActivity La clase incluye un archiveListener propiedad que implementa la Session.ArchiveListener Interfaz que proporciona funciones de devolución de llamada para gestionar eventos relacionados con los archivos: onArchiveStarted y onArchiveStopped.
Cuando el usuario hace clic en el start archive botón, la aplicación llama a archive/start punto final a través del startArchive() método. Cuando comienza la grabación de archivo, el onArchiveStarted() Se activa la función de devolución de llamada:
@Override
public void onArchiveStarted(Session session, String archiveId, String archiveName) {
currentArchiveId = archiveId;
setStopArchiveEnabled(true);
archivingIndicatorView.setVisibility(View.VISIBLE);
}
El onArchiveStarted() El método almacena el identificador del archivo en un currentArchiveId propiedad. El método también llama a setStopArchiveEnabled(true), lo que provoca que el stop recording elemento del menú que se va a mostrar. Y esto provoca que archivingIndicatorView que se mostrará (un punto rojo en el vídeo).
Cuando el usuario hace clic en el stop archive botón, la aplicación llama a archive/stop punto final a través del stopArchive() método. Cuando se detiene la grabación en archivo, el onArchiveStopped() Se activa la función de devolución de llamada:
@Override
public void onArchiveStopped(Session session, String archiveId) {
playableArchiveId = archiveId;
currentArchiveId = null;
setPlayArchiveEnabled(true);
setStartArchiveEnabled(true);
archivingIndicatorView.setVisibility(View.INVISIBLE);
}
El onArchiveStopped() El método almacena el identificador del archivo en un playableArchiveId propiedad y conjuntos currentArchiveId a null. El método también llama a setPlayArchiveEnabled(false), lo que desactiva la opción de menú «Reproducir archivo», y llama a setStartArchiveEnabled(true) para activar la opción de menú «Iniciar archivo». Y esto provoca que el archivingIndicatorView que se oculte.
Cuando el usuario hace clic en el play archive botón, el playArchive() Este método abre una página web (en el navegador del dispositivo) en la que se muestra la grabación archivada.
Notas:
-
En la mayoría de las aplicaciones, no se concedería a cada usuario final el control sobre el registro de archivo.
-
Puede tener sesiones archivadas automáticamente, que se graban cada vez que un cliente empieza a publicar un flujo.
-
Te recomendamos que configures un destino en Amazon S3 o Microsoft Azure para almacenar las grabaciones de tu archivo.
Para más información sobre el archivado, consulte el Guía para desarrolladores sobre el archivado de OpenTok.
¡Enhorabuena! Has completado el tutorial sobre archivado para Android.
Puedes seguir probando y modificando el código que has creado aquí, o echar un vistazo a la Próximos pasos abajo.
Próximos pasos
Cuando hayas terminado aquí, sigue desarrollando y mejorando tu aplicación de OpenTok con estos útiles recursos:
- Conceptos básicos de la Video API: si aún no lo has hecho, dedica unos minutos a descubrir exactamente cómo funciona OpenTok
- Ejemplos de código: una recopilación de aplicaciones de ejemplo que exploran diversas funciones y casos de uso de OpenTok
- Guías para desarrolladores: documentación detallada sobre todas las características y funcionalidades de OpenTok
- Tutoriales adicionales: guías paso a paso para implementar otras funciones y casos de uso de OpenTok
- Referencia del SDK de Android: descubre los métodos y eventos asociados al SDK de OpenTok para Android