0

我想知道这是否可能,如果可能的话,可能还有一些代码示例。我试图让演示者在现场演讲期间能够在他不在时按下按钮。然后,此按钮将在客户端触发 jpg 或某种图像,表明他目前不在,并使其静音演示者的麦克风?任何人都知道如何在 FMIS 4 和 AS3 中实现这一点?

4

1 回答 1

0

是的,这是可行的。有一点代码要写。这是一个分解:

  • 演示者客户端创建一个 NetConnection,然后将一个 NetStream 发布到 FMS。
  • 当演示者按下离开按钮时:
    1. 演示者的客户端将麦克风增益设置为 0
    2. Presenter 的客户端使用NetStream.send()向所有订阅客户端发送消息。该消息基本上是一个函数的名称和所有订阅客户端应该执行的一些参数。在这种情况下,该函数将显示/隐藏“离开”图像。
  • 然后在演示者返回时执行相反的操作

[编辑] 添加一些代码以阐明如何使用NetStream.send()

演示者代码:

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
}

订阅者代码

创建 NetStream 时,使用客户端属性,以便它知道在哪里可以找到我们上面指定的函数“toggleAwayImageDisplay”:

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
}
于 2012-05-22T20:50:16.190 回答