| Heredado de | NSObject |
| Declarado en | OTPublisherKit.h |
Visión general
Un editor captura un flujo de audio y vídeo de las fuentes que especifiques. A continuación, puedes publicar el flujo de audio y vídeo en una sesión de OpenTok enviando el [OTSession publish:error:] mensaje.
El SDK de OpenTok para iOS permite la publicación en todos los dispositivos iOS multinúcleo. Consulta la sección «Requisitos para desarrolladores y clientes» del archivo README correspondiente al SDK de OpenTok para iOS.
Inicialización de un editor
– initWithDelegate:
Inicializa un objeto «publisher» y especifica el objeto «delegate».
- (nullable instancetype)initWithDelegate:(nullable id<OTPublisherKitDelegate>)delegate
Parámetros
delegate |
El delegado (OTPublisherKitDelegate) objeto para el editor. |
Valor devuelto
El puntero a la instancia, o nil si la inicialización ha fallado.
Debate
Al ejecutarse en el simulador de iOS de Xcode, este método devuelve nil.
Declarado en
OTPublisherKit.h
– initWithDelegate:settings:
Inicializa el editor con los parámetros definidos por un OTPublisherKitConfiguración objeto.
- (nullable instancetype)initWithDelegate:(nullable id<OTPublisherKitDelegate>)delegate settings:(nonnull OTPublisherKitSettings *)settings
Parámetros
delegate |
El delegado (OTPublisherKitDelegate) objeto para el editor. |
settings |
El (OTPublisherKitConfiguración) objeto que define la configuración del editor. |
Declarado en
OTPublisherKit.h
– initWithDelegate:name:
Inicializa un objeto «publisher» y especifica el objeto delegado y el nombre del flujo.
- (nullable instancetype)initWithDelegate:(nullable id<OTPublisherKitDelegate>)delegate name:(nullable NSString *)name
Parámetros
delegate |
El delegado (OTPublisherKitDelegate) objeto para el editor. |
name |
El nombre del vídeo del editor. El [Nombre de OTStream] La propiedad de una transmisión publicada por este emisor se establecerá en este valor (en todos los clientes). |
Valor devuelto
El puntero a la instancia, o nil si la inicialización ha fallado.
Debate
Este método está obsoleto. Utiliza [OTPublisherKit initWithDelegate:settings:] en su lugar.
Al ejecutarse en el simulador de iOS de Xcode, este método devuelve nil.
Declarado en
OTPublisherKit.h
– initWithDelegate:name:audioTrack:videoTrack:
Inicializa el editor y especifica si el audio y el vídeo estarán activados para esta instancia.
- (nullable instancetype)initWithDelegate:(nullable id<OTPublisherKitDelegate>)delegate name:(nullable NSString *)name audioTrack:(BOOL)audioTrack videoTrack:(BOOL)videoTrack
Parámetros
delegate |
El delegado (OTPublisherKitDelegate) objeto para el editor. |
name |
El nombre del vídeo del editor. El [Nombre de OTStream] La propiedad de una transmisión publicada por este emisor se establecerá en este valor (en todos los clientes). |
audioTrack |
Si se publica el audio (SÍ) o no (NO). |
videoTrack |
Si se publica el vídeo (SÍ) o no (NO). |
Debate
Este método está obsoleto. Utiliza [OTPublisherKit initWithDelegate:settings:] en su lugar.
Si se establece «NO» en «audioTrack» o en «videoTrack», el subsistema correspondiente no se inicializará, y al establecer el correspondiente [OTPublisherKit publishAudio] y [OTPublisherKit publishVideo] Las propiedades no tendrán ningún efecto.
Si tu aplicación no requiere el uso de audio ni vídeo, se recomienda configurar estos valores en lugar de utilizar el [OTPublisherKit publishAudio] y [OTPublisherKit publishVideo] propiedades que solo desactivan las pistas de forma temporal.
Declarado en
OTPublisherKit.h
Obtener información sobre la editorial
delegate
El OTPublisherDelegate objeto, que es el delegado del objeto OTPublisher .
@property (nonatomic, weak) id<OTPublisherKitDelegate> _Nullable delegate
Debate
Ver también [OTPublisherKit audioLevelDelegate], [OTPublisherKit networkStatsDelegate], y [OTPublisherKit rtcStatsReportDelegate].
Declarado en
OTPublisherKit.h
audioLevelDelegate
Recibe periódicamente informes sobre los niveles de audio de esta editorial.
@property (nonatomic, weak) id<OTPublisherKitAudioLevelDelegate> _Nullable audioLevelDelegate
Debate
Se trata de un objeto delegado distinto del establecido como propiedad «delegate» (el objeto OTPublisherKitDelegate).
Si no se configura esta propiedad, el subsistema de muestreo de audio queda desactivado.
Declarado en
OTPublisherKit.h
networkStatsDelegate
El OTPublisherKitNetworkStatsDelegate objeto que recibe periódicamente estadísticas de calidad del editor.
@property (nonatomic, weak) id<OTPublisherKitNetworkStatsDelegate> _Nullable networkStatsDelegate
Debate
A este objeto delegado se le envían mensajes que informan de lo siguiente:
- Total de paquetes de audio y vídeo perdidos
- Total de paquetes de audio y vídeo recibidos
- Total de bytes de audio y vídeo recibidos
Se trata de un objeto delegado distinto del establecido como el [Delegado de OTPublisherKit] propiedad (el objeto OTPublisherKitDelegate).
Véase también [OTPublisherKit rtcStatsReportDelegate].
Declarado en
OTPublisherKit.h
rtcStatsReportDelegate
El OTPublisherKitRtcStatsReportDelegate que recoge las estadísticas de RTC para la editorial. El [OTPublisherKitRtcStatsReportDelegate publisher:rtcStatsReport:] El mensaje se envía en respuesta a la llamada a la función [OTPublisherKit getRtcStatsReport] método.
@property (nonatomic, weak) id<OTPublisherKitRtcStatsReportDelegate> _Nullable rtcStatsReportDelegate
Declarado en
OTPublisherKit.h
session
La sesión a la que pertenece este editor.
@property (readonly) OTSession *session
Declarado en
OTPublisherKit.h
stream
El OTStream objeto asociado al editor.
@property (readonly) OTStream *stream
Declarado en
OTPublisherKit.h
name
Una cadena que se asociará a la transmisión de este editor. Esta cadena se muestra en la parte inferior de los vídeos de los suscriptores asociados a la transmisión publicada, siempre que exista una superposición para mostrar el nombre.
@property (readonly) NSString *name
Debate
El nombre debe establecerse durante la inicialización, cuando se envía el [OTPublisherKit initWithDelegate:settings:] mensaje.
Este valor se establece por defecto en una cadena vacía.
Declarado en
OTPublisherKit.h
– getRtcStatsReport
Obtiene el informe de estadísticas de RTC del editor. Se trata de una operación asíncrona. Establece el [OTPublisherKit rtcStatsReportDelegate] propiedad y aplicar la [OTPublisherKitRtcStatsReportDelegate publisher:rtcStatsReport:] método antes de llamar a este método. Cuando las estadísticas estén disponibles, la implementación del [OTPublisherKitRtcStatsReportDelegate publisher:rtcStatsReport:] Se envía el mensaje.
- (void)getRtcStatsReport
Debate
Véase también [OTPublisherKit networkStatsDelegate] y [OTSubscriberKit getRtcStatsReport].
Declarado en
OTPublisherKit.h
Control de la salida de audio y vídeo para un editor
publishAudio
Si se debe publicar el audio.
@property (nonatomic) BOOL publishAudio
Debate
El valor por defecto es TRUE.
Declarado en
OTPublisherKit.h
publishVideo
Si se debe publicar el vídeo.
@property (nonatomic) BOOL publishVideo
Debate
El valor por defecto es TRUE.
Declarado en
OTPublisherKit.h
publishCaptions
Si se deben activar los subtítulos.
@property (nonatomic) BOOL publishCaptions
Debate
El valor por defecto es FALSE.
Declarado en
OTPublisherKit.h
Configuración del dispositivo del editor
videoCapture
El OTVideoCapture instancia utilizada para capturar vídeo y transmitirlo a la sesión de OpenTok .
@property (nonatomic, strong) id<OTVideoCapture> _Nullable videoCapture
Declarado en
OTPublisherKit.h
videoType
Especifica el tipo de vídeo de la transmisión publicada.
@property (nonatomic, assign) OTPublisherKitVideoType videoType
Debate
Establece este valor en uno de los siguientes:
OTPublisherKitVideoTypeScreen— Optimiza la codificación de vídeo para compartir pantalla. Para publicar una transmisión de pantalla compartida, debes implementar un capturador de vídeo personalizado para el objeto OTPublisherKit. Consulta [OTPublisherKit videoCapture]. Se recomienda utilizar una baja frecuencia de fotogramas (5 fotogramas por segundo o menos) con este tipo de vídeo. Cuando se utilice el tipo de vídeo de pantalla en una sesión que utilice el servidor multimedia de OpenTok, el OTPublisherKitConfiguración Las propiedades de recambio de audio están configuradas en «NO» de forma predeterminada; esto desactiva la función de recambio solo de audio, de modo que el vídeo no se interrumpa en los suscriptores. Véase OpenTok Media Router.OTPublisherKitVideoTypeCamera— Esta es la configuración predeterminada, que debes utilizar cuando emplees una cámara como fuente de vídeo.
Declarado en
OTPublisherKit.h
videoRender
El OTVideoRender instancia utilizada para procesar el vídeo que se va a transmitir a la sesión de OpenTok .
@property (nonatomic, strong) id<OTVideoRender> _Nullable videoRender
Declarado en
OTPublisherKit.h
Control de la configuración predeterminada de la tasa de bits de vídeo del Publisher
maxVideoBitrate
La tasa de bits máxima del flujo de vídeo del editor, en bits por segundo (bps).
@property (nonatomic) int maxVideoBitrate
Debate
Esta propiedad establece un límite máximo explícito para la tasa de bits del vídeo del editor,
entre 5.000 y 10.000.000.
Al establecer esta propiedad en 0 elimina cualquier límite manual y vuelve al
comportamiento predeterminado de velocidad de bits adaptativa basada en preajustes, sin ningún límite explícito.
Al leer esta propiedad, devuelve la velocidad de transmisión máxima configurada actualmente
en bps. Si no se ha establecido ninguna velocidad de transmisión manual, o si hay un ajuste preestablecido de velocidad de transmisión activo,
el valor es 0.
Un valor de 0 indica que no se aplica ningún límite explícito de velocidad de bits
y que la transmisión funciona según reglas preestablecidas adaptativas para optimizar la calidad.
Véase también [OTPublisherKit videoBitratePreset] y Velocidad de bits máxima del editor.
Declarado en
OTPublisherKit.h
videoBitratePreset
La estrategia de configuración predeterminada de la tasa de bits de vídeo aplicada a la transmisión de vídeo del editor.
@property (nonatomic) OTVideoBitratePreset videoBitratePreset
Debate
Esta propiedad configura una estrategia de velocidad de bits predefinida para equilibrar la calidad del vídeo y el uso del ancho de banda. Entre los ajustes predefinidos disponibles se incluyen el comportamiento predeterminado, el ahorro moderado de ancho de banda y el ahorro agresivo de ancho de banda. Las estrategias predefinidas permiten controlar el comportamiento del codificador sin necesidad de especificar valores explícitos de velocidad de bits.
Las configuraciones predefinidas y los ajustes manuales de la tasa de bits son mutuamente excluyentes.
Configuración maxVideoBitrate anulará cualquier valor preestablecido y cambiará automáticamente
el valor de esta propiedad a OTVideoBitratePresetCustom.
Al leer esta propiedad se obtiene el preajuste activo en ese momento. Si se ha configurado manualmente una tasa de bits personalizada,
el valor será OTVideoBitratePresetCustom.
El valor por defecto es OTVideoBitratePresetDefault.
Véase también [OTPublisherKit maxVideoBitrate] y Velocidad de bits máxima del editor.
Declarado en
OTPublisherKit.h
degradationPreference
La política preferida que seguirá el motor de vídeo a la hora de ajustar la frecuencia de fotogramas y la resolución en función de las limitaciones de ancho de banda y las condiciones de la CPU. Consulta OTDegradationPreference para obtener una descripción de los valores posibles.
@property (nonatomic) OTDegradationPreference degradationPreference
Declarado en
OTPublisherKit.h
targetScalabilityMode
El modo de escalabilidad de destino que se estableció explícitamente mediante setTargetScalabilityMode:error:. Devuelve el último valor pasado al método setter, o null si nunca se ha llamado a dicho método. Esto refleja la intención del usuario, no el modo realmente aplicado (que puede diferir debido a un recurso alternativo dependiente del códec).
@property (nonatomic, readonly) NSString *targetScalabilityMode
Debate
Esta es una función en fase beta.
Declarado en
OTPublisherKit.h
– setTargetScalabilityMode:error:
El modo de escalabilidad de destino (SVC: codificación de vídeo escalable) para este editor. El modo de escalabilidad controla el número de capas espaciales (resolución) y temporales (frecuencia de fotogramas) que codifica WebRTC. El modo se aplica a la ruta de medios del Media Router.
- (void)setTargetScalabilityMode:(NSString *_Nullable)mode error:(NSError *_Nullable *_Nullable)error
Parámetros
mode |
La cadena del modo de escalabilidad deseado (por ejemplo, @«L1T3»). Debe ser una de las siguientes: L1T1, L1T2, L1T3, L2T1, L2T2, L2T3, L3T1, L3T2, L3T3. |
error |
En caso de error, se establece un OTError con el dominio OT_PUBLISHER_ERROR_DOMAIN y el código OTPublisherInvalidScalabilityMode. |
Debate
Se puede llamar al «setter» en cualquier momento; no es necesario que la negociación de la ruta de medios haya finalizado. El modo se aplicará una vez que se haya establecido la ruta de medios del enrutador de medios.
Si se negocia un códec que no sea SVC (VP8, H.264) en la ruta de medios del enrutador de medios, se utiliza el modo aplicable más cercano: las capas espaciales se fijan en 1, conservando la dimensión temporal (por ejemplo, L2T2 → L1T2 cuando se negocia VP8).
Declarado en
OTPublisherKit.h
Configuración de los transformadores de medios
videoTransformers
Matriz de objetos `OTVideoTransformer` en el orden en que se aplicarán a la secuencia.
@property (nonatomic, strong) NSArray *videoTransformers
Declarado en
OTPublisherKit.h
audioTransformers
Matriz de objetos `OTAudioTransformer` en el orden en que se aplicarán a la secuencia de datos.
@property (nonatomic, strong) NSArray *audioTransformers
Declarado en
OTPublisherKit.h