Publicar: Comprobación previa y permisos
Utilice esta guía para verificar los permisos y capacidades antes de empezar a publicar, para que los usuarios tengan una experiencia sin problemas. Previsualizará el vídeo local, comprobará el estado de los permisos de cámara/micrófono y confirmará que el cliente puede publicar.
Vista previa antes del streaming
Por defecto, la vista Editor muestra una vista previa local cuando se inicia la transmisión. También puede mostrar explícitamente una vista previa antes de publicar:
Para ver una vista previa del vídeo antes de que el editor empiece a emitirlo, llame al botón startPreview() del objeto Editor:
Si llama al startPreview() debe llamar al método destroy() del editor para eliminar la vista del editor (y el vídeo), cuando el editor deja de emitir (cuando el método onStreamDestroyed(PublisherKit publisher, Stream stream) del PublisherListener).
Comprobar el acceso a la cámara
Recomendamos comprobar los permisos de la cámara antes de publicarla y guiar a los usuarios para que habiliten el acceso si es necesario.
Puede controlar cuándo se muestra este mensaje llamando a AVCaptureDevice requestAccess(for:completionHandler:) con AVMediaType.Videoque dará el aviso en la primera ejecución. Las llamadas posteriores ejecutarán el manejador de finalización con la preferencia almacenada del usuario.
Puede controlar cuándo se muestra este mensaje llamando a [AVCaptureDevice requestAccessForMediaType:completionHandler:] con AVMediaTypeVideoque dará el aviso en la primera ejecución. Las llamadas posteriores ejecutarán el manejador de finalización con la preferencia almacenada del usuario.
Comprobar la capacidad de publicación
Después de conectarse a una sesión, puede comprobar si el cliente puede publicar.
Una vez conectado a una sesión, puede comprobar si el cliente puede publicar. Establezca una referencia al OTSession y llamar a su objeto getCapabilites() en el método sessionConnected manejador de eventos. Este método devuelve una promesa con un objeto que incluye un canPublish propiedad. A continuación, puede publicar condicionalmente en función de ese valor:
import React, {Component} from 'react';
import {View} from 'react-native';
import {OTSession, OTPublisher, OTSubscriber} from 'opentok-react-native';
class App extends Component {
constructor(props) {
super(props);
this.apiKey = 'your API key';
this.sessionId = 'a session ID';
this.token = 'a valid token';
this.state = {canPublish: false};
this.sessionEventHandlers = {
sessionConnected: event => {
this.connectionCount++;
this.session.getCapabilities().then(capabilities => {
this.setState({canPublish: capabilities.canPublish});
});
},
};
}
render() {
return (
<View
<OTSession
applicationId={this.apiKey}
sessionId={this.sessionId}
token={this.token}
ref={instance => {
this.session = instance;
}}
eventHandlers={this.sessionEventHandlers}>
{this.state.canPublish ? (
<OTPublisher/>
) : null}
<OTSubscriber/>
</OTSession>
</View>
);
}
}
export default App;
Para publicar, el cliente debe conectarse a la sesión con un token al que se le asigna un papel que apoya la publicación.
Compruebe el valor del capabilities.publish propiedad del Session objeto. Si se establece en 1, el cliente puede publicar:
if (session.capabilities.publish == 1) {
// The client can publish. See the next section.
} else {
// The client cannot publish.
// You may want to notify the user.
}
Para publicar, el cliente debe conectarse a la sesión con un token que tenga asignado un rol que admita la publicación. Debe haber una cámara y un micrófono conectados. Además, el entorno del cliente debe admitir la publicación (véase Compatibilidad con navegadores).
Además, la publicación sólo se admite en páginas HTTPS.
Compruebe el valor del OTSession capablilites.canPublish propiedad. Si se establece en trueel cliente puede publicar:
Para publicar, el cliente debe conectarse a la sesión con un token que tenga asignado un rol que admita la publicación. Véase el Visión general de la creación de tokens.
Compruebe el valor del [OTSession.capablilites.canPublish:] propiedad. Si se establece en YESel cliente puede publicar:
Para publicar, el cliente debe conectarse a la sesión con un token que tenga asignado un rol que admita la publicación. Véase el Visión general de la creación de tokens.
Para configurar los dispositivos y la calidad una vez superada la verificación previa, continúe con Publicar: Ajustes y dispositivos.