FMIS muestra una pantalla de ausencia durante la sesión de transmisión

Me pregunto si esto es posible y tal vez algunos ejemplos de código si lo es. Estoy tratando de que el presentador durante una dirección en vivo pueda presionar un botón cuando no está. Este botón luego activará un jpg o algún tipo de imagen en el lado del cliente que dice que actualmente está fuera y también silenciará el micrófono del presentador. ¿Alguien tiene alguna idea de cómo sería esto posible en FMIS 4 y AS3?

preguntado el 22 de mayo de 12 a las 21:05

1 Respuestas

Sí, esto es factible. Hay un poco de código para escribir. Aquí hay un desglose:

  • El cliente para el presentador realiza una conexión de red y luego publica un flujo de red en FMS.
  • Cuando el presentador pulsa el botón de ausencia:
    1. El cliente del presentador establece la ganancia del micrófono en 0
    2. Usos del cliente del presentador NetStream.send () para enviar un mensaje a todos los clientes suscritos. El mensaje es básicamente el nombre de una función y algunos argumentos que todos los clientes suscritos deben ejecutar. En este caso, la función mostraría/ocultaría la imagen de "ausente".
  • luego haga lo contrario cuando regrese el presentador

[Editar] Agregar algo de código para aclarar cómo usar NetStream.send():

El código del presentador:

private function onAwayButtonClick(event:Event):void
{
    stream.send("toggleAwayImageDisplay"); // stream is a NetStream you created elsewhere
    mic.gain = 0; // mic is the Microphone you attached to the stream
}

El código de suscriptor

Al crear NetStream, use la propiedad del cliente para que sepa dónde encontrar la función "toggleAwayImageDisplay" que especificamos anteriormente:

private function someMethodThatCreatesNetStream(netConnection:NetConnection):void
{
    stream = new NetStream(netConnection);
    // you could use any object here, as long as it has the method(s) you are calling
    stream.client = this;

    // this might be nicer, you can reference functions from any class this way
    // the key in this client object is a function name
    // the value is a reference to the function
    // var client:Object =
    //     { toggleAwayImageDisplay: toggleAwayImageDisplay,
    //       doSomethingElse: anotherObject.doSomethingElse }; 
    // stream.client = client;
    // be careful about memory leaks though :)
}

private function toggleAwayImageDisplay():void
{
   // now show or hide the image
}

contestado el 22 de mayo de 12 a las 22:05

Gracias Sunil, intentaré implementar esto en el proyecto que ya tengo en marcha. - Marcos Lordi

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.