Flash 如何通过red5服务器进行双向音频交互

Flash 如何通过red5服务器进行双向音频交互,flash,flex4,streaming,audio-streaming,red5,Flash,Flex4,Streaming,Audio Streaming,Red5,我是Flash开发的新手。我正在尝试创建一个Flash(我已经这样做了,可以将流保存到red5服务器),在这个Flash中,我可以选择将自己的麦克风流发布到red5服务器,并且,我可以选择收听已发布的流。我将在两台不同的机器上使用相同的闪存。我将通过给流不同的名称来发布两台机器上的麦克风。然后我将尝试打开来自相反机器的流,以便我可以从这两台机器上进行双向音频聊天 e、 g从机器1发布的流是Stream1。 从机器2发布的流是Stream2 The stream played from machi

我是Flash开发的新手。我正在尝试创建一个Flash(我已经这样做了,可以将流保存到red5服务器),在这个Flash中,我可以选择将自己的麦克风流发布到red5服务器,并且,我可以选择收听已发布的流。我将在两台不同的机器上使用相同的闪存。我将通过给流不同的名称来发布两台机器上的麦克风。然后我将尝试打开来自相反机器的流,以便我可以从这两台机器上进行双向音频聊天

e、 g从机器1发布的流是Stream1。 从机器2发布的流是Stream2

The stream played from machine 1 was Stream2.
The stream played from machine 2 was Stream1.
我面临的问题是,我很难实现双向通信。也就是说,我无法听到来自第一台机器的流2。当我发布来自第二台机器的流时,我的第一个流断开连接,并被第二个流覆盖。
有谁能给我一个合适的建议,如何纠正这个问题以实现gud双向连接,或者如何将两个音频流一起传输。

好的,要使用red5和Flex4.5创建一个音频聊天应用程序,您可以尝试下面的代码。当然,应该根据您的目的进行调整:

音频聊天机1

    <mx:Script>
     <![CDATA[
         import mx.controls.Alert;
         
         private var netConnection:NetConnection;
         private var InsertStream:NetStream;
         private var getStream:NetStream;
         private var connectionUrl:String="rtmp://YOURSERVER/vchat";
         
         private function init():void
         {
             netConnection=new NetConnection();
             netConnection.connect(connectionUrl);
             netConnection.addEventListener(NetStatusEvent.NET_STATUS,connectHandler);
         }                                   
         
         private function connectHandler(e:NetStatusEvent):void
         {
          if(e.info.code=="NetConnection.Connect.Success")
          {                                            
            InsertStream=new NetStream(netConnection);
              InsertStream.attachAudio(Microphone.getMicrophone());
              InsertStream.publish("stream1","live");
              getStream=new NetStream(netConnection);
              getStream.attachAudio(Microphone.getMicrophone());
              getStream.play("stream2"); // play the machine 2 stream
          }
          else
          {
              Alert.show("server Problem");
          }                                
  }
 ]]>
 </mx:Script>
 

     
 
 
机器2

    <mx:Script>
     <![CDATA[
         import mx.controls.Alert;
         
         private var netConnection:NetConnection;
         private var InsertStream:NetStream;
         private var getStream:NetStream;
         private var connectionUrl:String="rtmp://YOURSERVER/vchat";
         
         private function init():void
         {
             netConnection=new NetConnection();
             netConnection.connect(connectionUrl);
             netConnection.addEventListener(NetStatusEvent.NET_STATUS,connectHandler);
         }                                   
         
         private function connectHandler(e:NetStatusEvent):void
         {
          if(e.info.code=="NetConnection.Connect.Success")
          {                                            
              InsertStream=new NetStream(netConnection);
              InsertStream.attachAudio(Microphone.getMicrophone());
              InsertStream.publish("stream2","live");
              getStream=new NetStream(netConnection);
              getStream.attachAudio(Microphone.getMicrophone());
              getStream.play("stream1"); // play stream from the other machine
          }
          else
          {
              Alert.show("server Problem");
          }                                
  }
 ]]>
 </mx:Script>

     
 

嘿,谢谢你的回复,我昨天就自己解决了这个问题,不管怎样,非常感谢你的帮助。你是否按照Future2020的回答使用了类似的代码?如果你能回复,这将是一个很大的帮助。谢谢