Saltar al contenido
Nelkano Emulador multisistema

SDK de Nelkano

Streaming de la partida

Streaming permite ver la partida en la web. La cuenta necesita el permiso de streaming del servidor.

  1. Inicia sesión en Nelkano con Amigos y abre un juego.
  2. En los ajustes de la partida, abre Streaming, incluido en Nelkano básicos.
  3. 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.

Confirmación antes de emitir una partida (ejemplo).
Confirmación antes de emitir una partida (ejemplo).

Ver y detener la emisión

  1. Abre Streaming en nelkano.com.
  2. 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.