Utiliza la API de audio fallback para priorizar dinámicamente el audio en respuesta a la calidad de la red.
Nota: En audioFallbackEnabled de las opciones introducidas en el campo OT.initPublisher() quedará obsoleto. Utilice el método audioFallback.subscriber del objeto options.
Enabling and disabling audio-only fallback
Al inicializar el objeto Publisher, establezca el parámetro audioFallback de la opción que introduzca en el campo OT.initPublisher() método:
// Enable publisher audio fallback
const publisher = OT.initPublisher('target', {
audioFallback: {
publisher: true,
}
});
// Enable publisher audio fallback and disable subscriber audio fallback
const publisher = OT.initPublisher('target', {
audioFallback: {
publisher: true,
subscriber: false,
}
});
// Enable subscriber audio fallback and disable publisher audio fallback
const publisher = OT.initPublisher('target', {
audioFallback: {
publisher: false,
subscriber: true,
}
});
En audioFallback de las opciones que introduzca en el campo OT.initPublisher() incluye dos propiedades booleanas:
publisher- Si se activa (true) o desactivar (false) editor de audio fallback. Por defecto esfalse(el editor de audio fallback está desactivado).subscriber- Si se activa (true) o desactivar (false). Esta configuración sólo se aplica en las sesiones enrutadas (sesiones que utilizan la función Router multimedia de vídeo de Vonage). El audio fallback del abonado no está soportado en sesiones retransmitidas. El valor predeterminado estrue(el audio fallback del abonado está activado). Este ajuste sustituye alaudioFallbackEnabledque quedará obsoleta.
Audio fallback events and UI indications
Cuando el editor de audio fallback está habilitado, el objeto Publisher envía estos eventos en respuesta a los cambios en las condiciones de calidad:
videoDisableWarning- Se envía cuando el Editor determina que la calidad del flujo se ha degradado y el vídeo se desactivará si la calidad se degrada más.videoDisableWarningLifted- Se envía cuando el Editor determina que la calidad del flujo ha mejorado hasta el punto en que el vídeo desactivado no supone un riesgo inmediato.videoDisabled- Se envía cuando el editor determina que la calidad del flujo se ha degradado y el transporte de vídeo saliente se ha desactivado. Nota: mientras el vídeo está desactivado, el editor sigue mostrando el vídeo del editor (como la imagen de la cámara) en la interfaz de usuario del cliente de publicación.videoEnabled- Enviado con el motivo: "calidad" cuando el Editor determina que la calidad del flujo ha mejorado y se ha vuelto a habilitar el transporte de vídeo saliente.
Por defecto, el Editor muestra iconos cuando el videoDisableWarning y videoDisabled ocurren los acontecimientos.
En style propiedad del options parámetro para OT.initPublisher() ahora incluye un videoDisabledDisplayMode propiedad.
Puede establecer la propiedad videoDisabledDisplayMode a uno de los siguientes valores de cadena controlan cómo se muestran los elementos de la interfaz de usuario por defecto
se muestran los elementos de la interfaz de usuario:
auto(el valor predeterminado) - Los iconos se muestran automáticamente cuando el vídeo está desactivado o en riesgo de ser desactivado debido a la mala calidad de la transmisión.off- Los iconos no se muestran. Puede mostrar sus propias notificaciones de interfaz de usuario basadas en los eventos descritos anteriormente.on- Los iconos se muestran automáticamente cuando el vídeo está desactivado o corre el riesgo de estarlo debido a la mala calidad del flujo.
Por ejemplo, el siguiente código desactiva los elementos de la interfaz de usuario de vídeo desactivados por defecto, y gestiona los eventos relacionados (para que pueda proporcionar sus propias notificaciones de interfaz de usuario):
// Enabled
const publisher = OT.initPublisher('target', {
audioFallback: {
publisher: true,
},
style: {
videoDisabledDisplayMode: 'off',
}
});
publisher.on({
videoDisableWarning: () => {
// Custom action — for example, add custom UI notification
},
videoDisableWarningLifted: () => {
// Custom action — for example, remove custom UI notification
},
videoDisabled: () => {
// Custom action — for example, add custom UI notification
},
videoEnabled: () => {
// Custom action — for example, remove custom UI notification
},
});
También puede ajustar el videoDisabledDisplayMode dinámicamente llamando a la función Publisher.setStyle() método:
publisher.setStyle('videoDisabledDisplayMode', 'off');
// Alternately:
publisher.setStyle({
videoDisabledDisplayMode: 'off',
// other styles ...
});
Desde la perspectiva del abonado, los siguientes eventos indican que se ha producido un fallo de audio. Aunque estos eventos están vinculados al abonado, pueden ocurrir tanto debido al fallback de audio del abonado como a consecuencia del fallback de audio del editor. En otras palabras la diferencia entre el fallback de audio del editor y del suscriptor es que, en el caso del editor, el cliente de publicación puede activar el fallback de audio basado en su propio flujo. audio fallback basándose en la degradación de su propio flujo, razón por la cual se envían eventos adicionales del lado del editor. Para la recuperación de audio del suscriptor del suscriptor, el enrutador de medios de video de Vonage evalúa la degradación de la red que afecta al suscriptor. En ambos casos, en caso de audio del editor o del suscriptor, siempre se envían eventos del suscriptor para indicar que se ha producido una caída de audio para el receptor.
Un objeto Suscriptor envía los siguientes eventos relacionados con la activación o desactivación del vídeo para el flujo del suscriptor:
videoEnabled- Se emite cuando el vídeo se ha activado después de haber sido desactivado previamente.videoDisabled- Se activa cuando se desactiva el vídeo. La direcciónreasondel objeto de evento indica por qué se ha desactivado el vídeo. (Este objeto de evento es un Evento VideoEnabledChangedEvent objeto).videoDisableWarning- Se envía cuando se determina que la calidad del flujo se ha degradado y el vídeo se desactivará si la calidad se degrada más. Si la calidad se degrada aún más, el suscriptor desactiva el vídeo y envía un evento videoDisabled. Este evento también puede ser enviado cuando se utiliza la función beta publisher audio fallback si la calidad del flujo del editor se degrada.videoDisableWarningLifted- El vídeo se ha activado después de que anteriormente estuviera desactivado.
Por defecto, el Suscriptor muestra un indicador de advertencia de vídeo desactivado y un indicador de vídeo desactivado cuando el videoDisableWarning y videoDisableWarningLifted se envían los eventos. Puede desactivar la visualización por defecto del indicador configurando la opción videoDisabledDisplayMode del objeto Suscriptor.
En el siguiente ejemplo se utiliza la función videoDisabledDisplayMode para que el indicador de advertencia de vídeo desactivado y un indicador de vídeo desactivado parpadeen cada un segundo cuando el videoDisableWarning y videoDisableWarningLifted se envían los eventos:
const indicatorBlinker = new IndicatorBlinker(subscriber);
const IndicatorBlinker = function(subscriber) {
const timer;
const indicatorOn = false;
subscriber.on({
videoDisabled: function(event) {
start();
},
videoDisableWarning: function(event) {
start();
},
videoDisableWarningLifted: function(event) {
stop();
},
videoEnabled: function(event) {
stop();
}
});
const start = function() {
subscriber.setStyle('videoDisabledDisplayMode', 'on');
if (timer) {
clearInterval(timer);
}
timer = setInterval(function() {
if (indicatorOn) {
subscriber.setStyle('videoDisabledDisplayMode', 'off');
} else {
subscriber.setStyle('videoDisabledDisplayMode', 'on');
}
indicatorOn = !indicatorOn;
}, 1000);
indicatorOn = true;
};
const stop = function() {
if (timer) {
clearInterval(timer);
}
};
}
También puede ajustar el videoDisabledDisplayMode estilo a 'off' y añada sus propios elementos de interfaz de usuario basados en el videoDisableWarning, videoDisabled, videoDisableWarningLiftedy videoEnabled eventos.