Heredado de NSObject
Declarado en OTSession.h

Visión general

El primer paso para utilizar el SDK de OpenTok para iOS es inicializar un objeto OTSession con tu clave de API y una ID de sesión Utiliza el objeto OTSession para conectarte a OpenTok con tu cuenta de desarrollador Clave API y una ficha.

Obtener información sobre la sesión

sessionConnectionStatus

El estado de esta instancia de OTSession. Resulta útil para realizar consultas puntuales sobre el estado de la sesión.

@property (readonly) OTSessionConnectionStatus sessionConnectionStatus

Debate

Los valores válidos se definen en OTSessionConnectionStatus:

  • OTSessionConnectionStatusNotConnected - La sesión no está conectada.
  • OTSessionConnectionStatusConnected - La sesión está conectada.
  • OTSessionConnectionStatusConnecting - La sesión se está conectando.
  • OTSessionConnectionStatusDisconnecting - La sesión se está desconectando.
  • OTSessionConnectionStatusFailed - Se ha producido un error grave en la sesión

Al crear una instancia, se espera que el sessionConnectionStatus tener el valor OTSessionConnectionStatusNotConnected.

Puedes utilizar un observador de clave-valor para supervisar esta propiedad. Sin embargo, el [OTSessionDelegate sessionDidConnect:] y [OTSessionDelegate sessionDidDisconnect:] Los mensajes se envían al delegado de la sesión cuando esta se conecta y se desconecta.

Declarado en

OTSession.h

sessionId

El ID de sesión de esta instancia. Se trata de un valor inmutable.

@property (readonly) NSString *sessionId

Declarado en

OTSession.h

streams

Las transmisiones que forman parte de esta sesión, identificadas por su «streamId».

@property (readonly) NSDictionary<NSString*OTStream*> *streams

Declarado en

OTSession.h

connection

El OTConnection objeto para esta sesión. La propiedad de conexión solo está disponible una vez que el [OTSessionDelegate sessionDidConnect:] Se envía el mensaje. Si la sesión no consigue conectarse, esta propiedad seguirá siendo nula.

@property (readonly) OTConnection *connection

Declarado en

OTSession.h

delegate

El OTSessionDelegate objeto que actúa como objeto delegado de este objeto OTSession, y se encarga de gestionar los mensajes en nombre de esta sesión.

@property (nonatomic, assign) id<OTSessionDelegate> _Nullable delegate

Declarado en

OTSession.h

apiQueue

La cola de devoluciones de llamada del delegado puede definirla la propia aplicación. La cola de GCD para emitir devoluciones de llamada al delegado puede sobrescribirse para permitir la integración con XCTest (novedad de XCode 5) u otros marcos de trabajo que necesiten funcionar en el hilo principal.

@property (nonatomic, assign) dispatch_queue_t _Nonnull apiQueue

Declarado en

OTSession.h

capabilities

Un OTSessionCapabilities objeto que indica si el cliente puede publicar y suscribirse a flujos en la sesión, en función del rol asignado al token utilizado para conectarse a la sesión. Esta propiedad se establece en nil hasta que te hayas conectado a una sesión y el [OTSessionDelegate sessionDidConnect:] Se ha llamado al método.

@property (readonly) OTSessionCapabilities *capabilities

Declarado en

OTSession.h

Inicialización y conexión a una sesión

– initWithApiKey:sessionId:delegate:

Inicia esta sesión con tu clave API de OpenTok, una ID de sesión, y delega antes de conectarte a OpenTok. Envía el [OTSession connectWithToken:error:] mensaje para conectarse a la sesión.

- (nullable id)initWithApiKey:(nonnull NSString *)apiKey sessionId:(nonnull NSString *)sessionId delegate:(nullable id<OTSessionDelegate>)delegate

Parámetros

apiKey Tu clave API de OpenTok. Importante: Si utilizas una aplicación de Vonage (en lugar de un proyecto de OpenTok), introduce el ID de la aplicación (no una clave de la API de OpenTok) en este parámetro.
sessionId El identificador de sesión de esta instancia.
delegate El delegado (OTSessionDelegate) que gestiona los mensajes en nombre de esta sesión.

Valor devuelto

El objeto OTSession, o «nil» si falla la inicialización.

Declarado en

OTSession.h

– initWithApiKey:sessionId:delegate:settings:

Inicializa el objeto OTSession con los parámetros definidos por un OTSessionSettings objeto.

- (nullable id)initWithApiKey:(nonnull NSString *)apiKey sessionId:(nonnull NSString *)sessionId delegate:(nullable id<OTSessionDelegate>)delegate settings:(nullable OTSessionSettings *)settings

Parámetros

apiKey Tu clave API de OpenTok. Importante: Si estás utilizando la Video API con una aplicación de Vonage (en lugar de un proyecto de OpenTok), introduce el ID de la aplicación (no una clave de API de OpenTok) en este parámetro.
sessionId El identificador de sesión de esta instancia.
delegate El delegado (OTSessionDelegate) para la sesión.
settings El (OTSessionSettings) objeto que define la configuración de la sesión.

Declarado en

OTSession.h

– connectWithToken:error:

Una vez que tu solicitud tenga una ficha, conecta con tu Clave API para empezar a participar en una sesión de OpenTok.

- (void)connectWithToken:(nonnull NSString *)token error:(OTError *_Nullable *_Nullable)error

Parámetros

token El token generado para esta conexión.
error Se establece si se produce un error de forma sincrónica durante el procesamiento de la solicitud. El OTSessionErrorCode La enumeración (definida en el archivo OTError.h) define los valores para la code propiedad de este objeto. Este objeto es NULL si no se produce ningún error síncrono. Si se produce un error asíncrono, el [OTSessionDelegate session:didFailWithError:] El mensaje se envía al delegado de la sesión.

Debate

Cuando la sesión se conecta correctamente, el [OTSessionDelegate sessionDidConnect:] El mensaje se envía al delegado de la sesión.

Si la sesión no puede conectarse, el [OTSessionDelegate session:didFailWithError:] El mensaje se envía al delegado de la sesión.

Cuando se desconecta la sesión, el [OTSessionDelegate sessionDidDisconnect:] El mensaje se envía al delegado de la sesión.

Ten en cuenta que las sesiones se desconectan automáticamente cuando se suspende la aplicación.

Asegúrate de configurar un método delegado para el [OTSessionDelegate session:didFailWithError:] mensaje.

Declarado en

OTSession.h

– disconnect:

Desconectarse de una sesión activa de OpenTok.

- (void)disconnect:(OTError *_Nullable *_Nullable)error

Parámetros

error Se establece si se produce un error de forma sincrónica durante el procesamiento de la solicitud. El OTSessionErrorCode La enumeración (definida en el archivo OTError.h) define los valores para la code propiedad de este objeto. Este objeto es NULL si no se produce ningún error.

Debate

Este método libera todos los objetos OTPublisher y OTSubscriber que se hayan inicializado.

Como buena práctica, antes de llamar a este método, llama al [OTSession unpublish:error:] método para todos los editores y esperar a que el [OTPublisherKitDelegate publisher:streamDestroyed:] mensaje. Esto garantiza la eliminación completa de los editores, especialmente si los problemas de conectividad de red impiden dicha eliminación debido a la función de reconexión, que puede mantener activos los flujos de los editores a la espera de una posible reconexión.

Cuando se desconecta la sesión, el [OTSessionDelegate sessionDidDisconnect:] El mensaje se envía al delegado de la sesión.

Declarado en

OTSession.h

Publicación de transmisiones de audio y vídeo en una sesión

– publish:error:

Añade un editor a la sesión.

- (void)publish:(nonnull OTPublisherKit *)publisher error:(OTError *_Nullable *_Nullable)error

Parámetros

publisher El OTPublisherKit objeto con el que transmitir.
error Se establece si se produce un error de forma sincrónica durante el procesamiento de la solicitud. El OTPublisherErrorCode La enumeración (definida en el archivo OTError.h) define los valores para la code propiedad de este objeto. Este objeto es NULL si no se produce ningún error. Si se produce un error asíncrono, el [OTPublisherKitDelegate publisher:didFailWithError:] El mensaje se envía al delegado del editor.

Debate

Cuando el editor comienza a transmitir datos, el [OTPublisherKitDelegate publisher:streamCreated:] El mensaje se envía al delegado del editor.

Si la publicación falla, [OTPublisherKitDelegate publisher:didFailWithError:] se envía al delegado del editor y no se transmitirá ningún mensaje del delegado de sesión.

Ten en cuenta que no se admiten varios editores.

Declarado en

OTSession.h

– unpublish:error:

Elimina a un editor de la sesión.

- (void)unpublish:(nonnull OTPublisherKit *)publisher error:(OTError *_Nullable *_Nullable)error

Parámetros

publisher El OTPublisher objeto que se va a eliminar de la sesión.
error Se establece si se produce un error de forma sincrónica durante el procesamiento de la solicitud. El OTPublisherErrorCode La enumeración (definida en el archivo OTError.h) define los valores para la code propiedad de este objeto. Este objeto es NULL si no se produce ningún error.

Debate

Al eliminar el editor, el [OTPublisherKitDelegate publisher:streamDestroyed:] El mensaje se envía al delegado del editor una vez que se ha detenido la transmisión.

Declarado en

OTSession.h

Suscribirse a transmisiones de audio y vídeo

– subscribe:error:

Conecta esta instancia de suscriptor a la sesión e inicia la suscripción. Si el suscriptor pasado se ha creado a partir de un OTStream instancia de un diferente OTSession En este caso, el comportamiento de esta función es indefinido.

- (void)subscribe:(nonnull OTSubscriberKit *)subscriber error:(OTError *_Nullable *_Nullable)error

Parámetros

subscriber El suscriptor debe conectarse y empezar a suscribirse.
error Se establece si se produce un error de forma sincrónica durante el procesamiento de la solicitud. El OTSubscriberErrorCode La enumeración (definida en el archivo OTError.h) define los valores para la code propiedad de este objeto. Este objeto es NULL si no se produce ningún error. Si se produce un error asíncrono, el [OTSubscriberKitDelegate subscriber:didFailWithError:] El mensaje se envía al delegado del suscriptor.

Declarado en

OTSession.h

– unsubscribe:error:

Desconecta esta instancia de suscriptor de la sesión e inicia la limpieza de objetos.

- (void)unsubscribe:(nonnull OTSubscriberKit *)subscriber error:(OTError *_Nullable *_Nullable)error

Parámetros

subscriber Se va a desconectar al suscriptor y se le va a eliminar de esta sesión.
error Se establece si se produce un error de forma sincrónica durante el procesamiento de la solicitud. El OTSubscriberErrorCode La enumeración (definida en el archivo OTError.h) define los valores para la code propiedad de este objeto. Este objeto es NULL si no se produce ningún error.

Declarado en

OTSession.h

Envío y recepción de señales en una sesión

– signalWithType:string:connection:error:

Envía una señal a uno o varios clientes en una sesión.

- (void)signalWithType:(NSString *_Nullable)type string:(NSString *_Nullable)string connection:(OTConnection *_Nullable)connection error:(OTError *_Nullable *_Nullable)error

Parámetros

type El tipo de la señal. El tipo también se establece en el [OTSessionDelegate session:receivedSignalType:fromConnection:withString:] mensaje. La longitud máxima de la cadena de caracteres es de 128 caracteres, y solo debe contener letras (A-Z y a-z), Numbers (0-9), «-», «_» y «~».
string Los datos que se van a enviar. El límite de tamaño de los datos es de 8 KB.
connection Un objeto OTConnection de destino. Establece este parámetro en nil para enviar una señal a todos los participantes de la sesión.
error Si falla el envío de una señal, este valor se establece en un objeto OTError. La enumeración OTSessionErrorCode (en OTError.h) incluye las constantes OTSessionInvalidSignalType y OTSessionSignalDataTooLong para estos errores. Ten en cuenta que el éxito indica que las opciones pasadas al método son válidas y que la señal se ha enviado. No indica que la señal haya sido recibida correctamente por ninguno de los destinatarios previstos.

Debate

Véase [OTSession signalWithType:string:connection:retryAfterReconnect:error:] y [OTSessionDelegate session:receivedSignalType:fromConnection:withString:].

Declarado en

OTSession.h

– signalWithType:string:connection:retryAfterReconnect:error:

Envía una señal a uno o varios clientes en una sesión. Esta versión del método incluye un retryAfterReconnect parámetro.

- (void)signalWithType:(NSString *_Nullable)type string:(NSString *_Nullable)string connection:(OTConnection *_Nullable)connection retryAfterReconnect:(BOOL)retryAfterReconnect error:(OTError *_Nullable *_Nullable)error

Parámetros

type El tipo de la señal. El tipo también se establece en el [OTSessionDelegate session:receivedSignalType:fromConnection:withString:] mensaje. La longitud máxima de la cadena de tipo es de 128 caracteres, y solo debe contener letras (A-Z y a-z), Numbers (0-9), «-», «_» y «~». Véase [OTSession signalWithType:string:connection:retryAfterReconnect:error:], [OTSessionDelegate session:receivedSignalType:fromConnection:withString:]y [OTSessionDelegate sessionDidBeginReconnecting:].
string Los datos que se van a enviar. El límite de tamaño de los datos es de 8 KB.
connection Un objeto OTConnection de destino. Establece este parámetro en nil para enviar una señal a todos los participantes de la sesión.
retryAfterReconnect Al volver a conectarse a la sesión, se debe decidir si se envían las señales que se iniciaron mientras se estaba desconectado. Si el cliente pierde la conexión con la sesión de OpenTok debido a una interrupción en la conectividad de red, el cliente intenta volver a conectarse a la sesión, y el [OTSessionDelegate sessionDidBeginReconnecting:] Se envía el mensaje. De forma predeterminada, las señales generadas mientras el cliente está desconectado se envían cuando (y si) el cliente se vuelve a conectar a la sesión de OpenTok. Puedes evitarlo configurando el retryAfterReconnect parámetro a false. (El valor por defecto es true.)
error Si falla el envío de una señal, este valor se establece en un objeto OTError. La enumeración OTSessionErrorCode (en OTError.h) incluye las constantes OTSessionInvalidSignalType y OTSessionSignalDataTooLong para estos errores. Ten en cuenta que el éxito indica que las opciones pasadas al método son válidas y que la señal se ha enviado. No indica que la señal haya sido recibida correctamente por ninguno de los destinatarios previstos.

Declarado en

OTSession.h

Forzar el silenciamiento del audio en las transmisiones

– forceMuteAll:error:

Obliga a todos los emisores de la sesión (excepto a aquellos que emiten flujos excluidos) a silenciar el audio.

- (void)forceMuteAll:(NSArray<OTStream*> *_Nullable)excludedStreams error:(OTError *_Nullable *_Nullable)error

Parámetros

excludedStreams Flujos que se excluirán de la solicitud de silenciamiento. Establece este valor en null para silenciar todos los flujos de la sesión (incluidos los publicados por el cliente local).
error Si la acción falla, este valor se establece en un objeto OTError. Ten en cuenta que el éxito indica que las opciones pasadas al método son válidas y que se ha enviado la solicitud para silenciar las transmisiones. No indica que los clientes de destino hayan aplicado correctamente la solicitud.

Debate

Además, cualquier flujo que se publique tras la llamada a la función [OTSession forceMuteAll:error:] método se publican con el audio silenciado. Puedes desactivar el silencio de una sesión llamando al [OTSession disableForceMute:] método. Una vez que hayas llamado al [OTSession disableForceMute:] De esta forma, las nuevas retransmisiones publicadas en la sesión ya no tendrán el audio silenciado.

Al llamar a este método, el mensaje se envía a cada cliente conectado a la sesión, con el active propiedad del muteForcedInfo objeto establecido en YES.

Compruebe el canForceMute propiedad del [Funcionalidades de OTSession] objeto para comprobar si puedes llamar a esta función correctamente. Está reservado para los clientes que se hayan conectado con un token al que se le haya asignado el rol de moderador (consulta el Token Resumen de la creación).

Véase [OTSession forceMuteStream:error:], [Funcionalidades de OTSession], [OTSessionDelegate session:muteForced:], [OTPublisherKitDelegate muteForced:], y Silenciar el audio de las transmisiones en una sesión.

Declarado en

OTSession.h

– disableForceMute:

Desactiva el estado de silencio activo de la sesión. Una vez que se llame a este método, las nuevas transmisiones publicadas en la sesión ya no tendrán el audio silenciado.

- (void)disableForceMute:(OTError *_Nullable *_Nullable)error

Parámetros

error Si la acción falla, se asigna a este un objeto OTError.

Debate

Después de llamar a la [OTSession forceMuteAll:error:] método (o si un moderador de otro cliente realiza una llamada para silenciar todas las transmisiones), cualquier transmisión publicada tras la llamada de moderación se publicará con el audio silenciado. Llama al disableForceMute() Método para desactivar el estado de silencio de una sesión (para que las nuevas transmisiones publicadas no se silencien automáticamente).

Al llamar a este método, el mensaje se envía a cada cliente conectado a la sesión, con el active propiedad del muteForcedInfo objeto establecido en NO.

Compruebe el canForceMute propiedad del [Funcionalidades de OTSession] objeto para comprobar si puedes llamar a esta función correctamente. Está reservado para los clientes que se hayan conectado con un token al que se le haya asignado el rol de moderador (consulta el Token Resumen de la creación).

Véase [OTSession forceMuteAll:error:], [Funcionalidades de OTSession], [OTSessionDelegate session:muteForced:], y Silenciar el audio de las transmisiones en una sesión.

Declarado en

OTSession.h

– forceMuteStream:error:

Obliga al emisor de una transmisión determinada a silenciar su audio.

- (void)forceMuteStream:(nonnull OTStream *)stream error:(OTError *_Nullable *_Nullable)error

Parámetros

stream La transmisión que se va a silenciar.
error Si la acción falla, este valor se establece en un objeto OTError. Ten en cuenta que el éxito indica que las opciones pasadas al método son válidas y que se ha enviado la solicitud para silenciar las transmisiones. No indica que los clientes de destino hayan aplicado correctamente la solicitud.

Debate

Compruebe el canForceMute propiedad del [Funcionalidades de OTSession] objeto para comprobar si puedes llamar a esta función correctamente. Está reservado para los clientes que se hayan conectado con un token al que se le haya asignado el rol de moderador (consulta el Token Resumen de la creación).

Véase [OTSession forceMuteAll:error:], [Funcionalidades de OTSession], [OTSessionDelegate session:muteForced:], [OTPublisherKitDelegate muteForced:], y Silenciar el audio de las transmisiones en una sesión.

Declarado en

OTSession.h

Obligar a los clientes a desconectarse

– forceDisconnect:error:

Obliga a un cliente a desconectarse de la sesión.

- (void)forceDisconnect:(OTConnection *_Nullable)connection error:(OTError *_Nullable *_Nullable)error

Parámetros

connection La conexión OT para desconectarse.
error Si falla la desconexión forzada, este valor se establece en un objeto OTError. La enumeración OTSessionErrorCode (en OTError.h) incluye OTSessionUnableToForceDisconnect para estos errores.

Debate

Aunque puedes utilizar el [OTSession forceDisconnect:error:] método para cortar tu propia conexión, llamando a la función [Desconexión de OTSession:] Este método es más sencillo. Se devuelve un error si el rol del cliente no incluye los permisos necesarios para forzar la desconexión de otros usuarios. El rol del cliente se define al crear el token de usuario. Cuando se interrumpe una conexión mediante este método, [OTSessionDelegate sessionDidDisconnect:], [OTSessionDelegate session:connectionDestroyed:] y [OTPublisherKitDelegate publisher:streamDestroyed:] Los mensajes se envían de la misma forma que si la conexión se hubiera interrumpido por sí misma utilizando [Desconexión de OTSession:]

Declarado en

OTSession.h

Notificar un problema

– reportIssue:

Informa de que tu aplicación ha tenido un problema. Puedes utilizar el ID del problema con el Inspector o cuando se trate un tema con el equipo de asistencia técnica de la Video API de Vonage.

- (void)reportIssue:(NSString *_Nullable *_Nullable)issueId

Parámetros

issueId Un puntero a una cadena que se establecerá como identificador único del problema notificado. Si la llamada al método falla (por ejemplo, debido a la falta de conexión a la red), este valor se establece en nil.

Declarado en

OTSession.h

– setEncryptionSecret:error:

Establece la clave de cifrado de extremo a extremo que utilizan todos los emisores y suscriptores.

- (void)setEncryptionSecret:(nonnull NSString *)secret error:(OTError *_Nullable *_Nullable)error

Parámetros

secret Valor del secreto de cifrado.
error Si la acción falla, este parámetro se establece en un objeto OTError.

Debate

Véase el Cifrado de extremo a extremo guía del desarrollador.

Declarado en

OTSession.h