1

私はFlash開発の初心者です.Flashを作成しようとしています(私はそれを行い、ストリームをred 5サーバーに保存できます)。これには、独自のマイクストリームをred5サーバーに公開するオプションがあります。既に公開されているストリームを聞くオプション。この同じフラッシュを 2 つの異なるマシンで使用します。ストリームに異なる名前を付けて、両方のマシンからマイクを公開します。次に、反対側のマシンからストリームを開こうとします。 2台のマシンから双方向の音声チャットができること。

たとえば、マシン 1 から公開されたストリームは Stream1 でした。マシン 2 から公開されたストリームは Stream2 でした。

The stream played from machine 1 was Stream2.
The stream played from machine 2 was Stream1.

私が直面している問題は、双方向通信を実現するのが難しいことです。つまり、1 番目のマシンからストリーム 2 を聞くことができません。2 番目のマシンからストリームを公開すると、最初のストリームが切断され、 2 番目のストリームによってオーバーライドされます。これを修正してgud 2ウェイ接続を実現する方法、または2つのオーディオを一緒にストリーミングする方法について、誰かが私に適切な提案をすることができますか.

4

1 に答える 1

0

                  red5 と flex 4.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>
于 2012-06-09T21:23:25.333 に答える