Tutorial sobre archivado en iOS (Objective-C)

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 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).

Deploy

¿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:

  1. Clonar OpenTok Aplicaciones de ejemplo para iOS repositorio en GitHub:

    git clone https://github.com/opentok/opentok-ios-sdk-samples.git
    
  2. En la terminal, cd en el subdirectorio «Archiving» del proyecto y, a continuación, ejecuta pod install.

  3. Abre tu proyecto en Xcode haciendo doble clic en el nuevo archivo «Archiving.xcworkspace» que se encuentra en el directorio «Archiving».

  4. Abre el archivo Config.h y configura el SAMPLE_SERVER_BASE_URL cadena a la URL base del servidor que implementa el aprender-opentok-php proyecto. Este servidor proporciona el ID de sesión y los tokens de OpenTok a la aplicación de ejemplo para iOS. Para obtener más información, consulta Configuración del servidor.

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: El ejemplo de archivado se basa en el Chat de vídeo básico para Objective-C, pero también hay un tutorial básico sobre el chat de vídeo en Swift.

El ejemplo de archivado añade las siguientes funciones:

  • Pulsa en el Empezar a grabar botón.

    Esto inicia la grabación de las transmisiones de audio y vídeo en el servidor multimedia de OpenTok.

  • Pulsa en el Detener la grabación botón para detener la grabación.

  • Pulsa en el Ver la grabación botón para ver la grabación en el navegador web.

En el archivo Config.h, debes establecer la siguiente constante con la URL base del servicio web al que recurre la aplicación para iniciar la grabación del archivo, detener la grabación y reproducir el vídeo grabado:

#define SAMPLE_SERVER_BASE_URL

Si no configuras esta cadena, los botones «Iniciar grabación», «Detener grabación» y «Ver archivo» no estarán disponibles en la aplicación.

Cuando el usuario hace clic en los botones «Iniciar grabación» y «Detener grabación», la aplicación llama a la [self startArchive:] y [self stopArchive:] métodos. Estos invocan servicios web que, a su vez, ejecutan código del lado del servidor para iniciar y detener las grabaciones de archivo.

Cuando se inicia la grabación de archivo, la implementación de la [OTSessionDelegate session:archiveStartedWithId:name:] Se llama al método:

- (void)     session:(OTSession*)session
archiveStartedWithId:(NSString *)archiveId
                name:(NSString *)name
{
    NSLog(@"session archiving started with id:%@ name:%@", archiveId, name);
    _archiveId = archiveId;
    _archiveIndicatorImg.hidden = NO;
    if (SAMPLE_SERVER_BASE_URL) {
        _archiveControlBtn.hidden = NO;
        [_archiveControlBtn setTitle: @"Stop recording" forState:UIControlStateNormal];
        _archiveControlBtn.hidden = NO;
        [_archiveControlBtn removeTarget:self
                                  action:NULL
                        forControlEvents:UIControlEventTouchUpInside];
        [_archiveControlBtn addTarget:self
                               action:@selector(stopArchive)
                     forControlEvents:UIControlEventTouchUpInside];
    }
}

Esto provoca que el _archivingIndicatorImg imagen (definida en el guion gráfico principal) que se va a mostrar. El método almacena el ID del archivo (que identifica dicho archivo) en un archiveId propiedad. El método también modifica el texto del botón de control de archivo para que pase a ser «Detener grabación».

Cuando el usuario hace clic en el botón «Detener grabación», la aplicación envía el ID del archivo al servicio web, que detiene la grabación de dicho archivo.

Cuando finaliza la grabación de archivo, la implementación de la [OTSessionDelegate session:archiveStoppedWithId:] Se llama al método:

- (void)     session:(OTSession*)session
archiveStoppedWithId:(NSString *)archiveId
{
    NSLog(@"session archiving stopped with id:%@", archiveId);
    _archiveIndicatorImg.hidden = YES;
    if (SAMPLE_SERVER_BASE_URL) {
        _archiveControlBtn.hidden = NO;
        [_archiveControlBtn setTitle: @"View recording" forState:UIControlStateNormal];
        [_archiveControlBtn removeTarget:self
                                  action:NULL
                        forControlEvents:UIControlEventTouchUpInside];
        [_archiveControlBtn addTarget:self
                               action:@selector(loadArchivePlaybackInBrowser)
                     forControlEvents:UIControlEventTouchUpInside];
    }
}

Esto provoca que el _archivingIndicatorImg imagen (definida en el guion gráfico principal) que se va a mostrar. Además, cambia el texto del botón de control de archivo por «Ver archivo». Cuando el usuario hace clic en este botón, el [self loadArchivePlaybackInBrowser:] Este método abre una página web (en Safari) 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 iOS.
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: