我是Flash开发的新手。我正在尝试创建一个闪存(我已经完成了并且可以将流保存到红色5服务器),我可以选择将自己的麦克风流发布到red5服务器。 ,我可以选择收听已经发布的流。我将在两台不同的机器上使用相同的闪存。我将通过给流不同的名称从两台机器发布麦克风。然后我将尝试打开来自对面的机器,这样我就可以从两台机器上进行双向音频聊天。
例如,从机器1发布的流是Stream1。 从机器2发布的流是Stream2。The stream played from machine 1 was Stream2.
The stream played from machine 2 was Stream1.
我面临的问题是我难以实现双向通信。那就是我无法从第一台机器听到流2。当我从第二台机器发布流时,我的第一个流获得断开连接并被第二个流覆盖。 任何人都可以给我一个适当的建议,如何纠正这个以实现gud双向连接或如何将2个音频串流在一起。
答案 0 :(得分: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>