Desafortunadamente, de vez en cuando, cuando se realiza una videollamada uno a uno con react-native-webrtc una de las dos transmisiones de video se congela o se vuelve negra. ¿Hay alguna manera de detectar cuándo eso sucede programáticamente? ¡Gracias de antemano!
Parece que cada pista de video tiene un oyente que se dispara tan pronto como la transmisión se congela.
En reaccionar nativo es el oyente onmute :
stream.getVideoTracks().forEach(videoTrack => { videoTrack.onmute = () => { console.log("Frozen video stream detected!"); }; });¡Tenga en cuenta que en React Native, la detección de secuencias congeladas con este método solo parece funcionar para pistas remotas!
Para detectar si una transmisión está actualmente congelada, uso la propiedad muted en la pista de video:
console.log(videoTrack.muted); // true when frozen
Otra forma que he encontrado pero que no he explorado más es el método getStats() en RTCPeerConnection. Devuelve una promesa con una gran cantidad de datos que se pueden usar para detectar transmisiones de video congeladas y mucho más, supongo.