Publicar: Comprobación previa y permisos
Utiliza esta guía para Verify los permisos y las capacidades antes de empezar a publicar, de modo que los usuarios disfruten de una experiencia fluida. Podrás previsualizar el vídeo local, comprobar el estado de los permisos de la cámara y el micrófono, y confirmar que el cliente puede publicar.
Vista previa antes de la reproducción
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() método del objeto Publisher:
mPublisher.startPreview();
Si llamas al startPreview() debe llamar al método destroy() Método que utiliza el editor para eliminar su vista (y el vídeo) cuando deja de retransmitir (cuando el onStreamDestroyed(PublisherKit publisher, Stream stream) se llama al método de 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.Video, lo que mostrará el mensaje de solicitud la primera vez que se ejecute. Las llamadas posteriores ejecutarán el controlador de finalización con la preferencia guardada por el usuario.
AVCaptureDevice.requestAccess(for: .video) { granted in
if granted {
// Access to the camera is granted. You can publish.
} else {
// Access to the camera is not granted.
}
}
Puede controlar cuándo se muestra este mensaje llamando a [AVCaptureDevice requestAccessForMediaType:completionHandler:] con AVMediaTypeVideo, lo que mostrará el mensaje de solicitud la primera vez que se ejecute. Las llamadas posteriores ejecutarán el controlador de finalización con la preferencia guardada por el usuario.
[AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted) {
if(granted){
// Access to the camera is granted. You can publish.
} else {
// Access to the camera is not granted.
}
}];
Comprobar la capacidad de publicación
Después de conectarse a una sesión, puede comprobar si el cliente puede publicar.
Una vez que te hayas conectado a una sesión, puedes comprobar si el cliente puede publicar. Establece una referencia al OTSession objeto y llamar a su 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 haya asignado un función 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 al que se le haya 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 true, el cliente puede publicar:
if let capabilities = session.capabilities, capabilities.canPublish {
// The client can publish.
} 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 al que se le haya asignado un rol que permita la publicación. Consulte el Visión general de la creación de tokens.
Compruebe el valor del [OTSession.capablilites.canPublish:] propiedad. Si se establece en YES, el cliente puede publicar:
if (session.capabilities.canPublish) {
// The client can publish.
} 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 al que se le haya asignado un rol que permita la publicación. Consulte 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: Configuración y dispositivos.