| 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