Streaming permite ver la partida en la web. La cuenta necesita el permiso de streaming del servidor.
- Inicia sesión en Nelkano con Amigos y abre un juego.
- En los ajustes de la partida, abre Streaming, incluido en Nelkano básicos.
- Revisa las opciones y pulsa Iniciar emisión.
Android pide confirmar el envío de vídeo y audio del juego por WebRTC y su respaldo HTTP a https://nelkano.com. El micrófono no se utiliza. Activar o instalar un módulo no inicia una emisión.
Ver y detener la emisión
- Abre Streaming en nelkano.com.
- Inicia sesión con la misma cuenta que en la app. El visor busca su emisión activa.
El panel también muestra el identificador, PIN y dirección devueltos por el servicio. El visor web actual sigue exigiendo iniciar sesión con tu cuenta.
Actualizar consulta el estado y Detener emisión termina la conexión. La emisión también termina al cerrar/cambiar el juego, cambiar de cuenta o retirar el módulo emisor. Android la detiene al pasar a segundo plano; Desktop tiene su propia gestión del foco.
Básicos propone 854 × 480, 30 fps y 1800 kbps; puedes cambiarlos antes de empezar. En Android, los contadores indican fotogramas y bloques de audio enviados, no si el receptor los ha reproducido.
Emitir desde tu módulo
Solicita media.streaming. Solo puede emitir un módulo a la vez:
const state = await host.streaming.snapshot();
try {
const result = await host.streaming.start({
width: 854, height: 480, fps: 30, videoBitrateKbps: 1800
});
if (result.cancelled) console.log("Emisión cancelada");
} catch (error) {
console.log("No se inició la emisión:", error instanceof Error ? error.message : String(error));
}
// Más tarde, para terminar una emisión iniciada por este módulo:
await host.streaming.stop();Si el usuario cancela, Android devuelve {cancelled:true} y Desktop rechaza la promesa. Contempla ambos casos, además de los errores de inicio, al mostrar el resultado.
El formulario de Básicos admite ancho 160–1920, alto 120–1080, 10–60 fps y 200–12000 kbps. El puerto directo valida los límites del host, que pueden ser distintos.
snapshot() devuelve estado, mensaje, destino y configuración. Una emisión creada incluye sessionId, pin y joinUri; Android puede añadir stats y relay. Las credenciales permanecen en el host.
Usar el gancho de Básicos
Declara en consumes el proveedor nelkano.basics, gancho streaming, versión 1.0.0, y solicita modules.hooks. Ofrece snapshot, configure, start y stop:
await host.hooks.invoke('nelkano.basics', 'streaming', 'configure', {
width: 854, height: 480, fps: 30, videoBitrateKbps: 1800
});
await host.hooks.invoke('nelkano.basics', 'streaming', 'start', {});configure guarda las opciones en Básicos. start solicita igualmente la confirmación del usuario.
Probar una emisión
Studio simula la cuenta, sesión y receptor para probar el formulario y los ganchos. Comprueba imagen, sonido, cancelación, cortes de red y cambios de sesión con una emisión real en la plataforma de destino. Android y Desktop solicitan confirmación al empezar; aceptar los permisos de instalación no la sustituye.
- Android: respaldo HTTP con imágenes WebP/JPEG de calidad adaptativa y audio PCM mono de 16 kHz en bloques de 500 ms. Está disponible durante la emisión si falla WebRTC, con colas acotadas por medio.
- Desktop: transporte WebRTC, sin ese respaldo HTTP ni los contadores
relay.
Si la app se cierra inesperadamente
Android conserva el identificador público de la emisión y la cuenta que la inició, sin PIN ni tokens. Antes de emitir de nuevo con esa cuenta intenta cerrar las emisiones anteriores; si no llega al servidor, guarda el registro para reintentar.
La app no reanuda la emisión automáticamente ni cierra las de otras cuentas. Detener libera la captura y WebRTC; el cierre en el servidor se completa en segundo plano.