?????????
????????????????
listenStream =
new
NetStream(netConnection,NetStream.DIRECT_CONNECTIONS);
?????
listenStream.addEventListener(NetStatusEvent.NET_STATUS,statusHandler);??
?????
listenStream.publish(username);??
?????
var
c:
Object
=
new
Object
();
?????
c.onPeerConnect =
function
(caller:NetStream):
Boolean
?????
{
???????
if
(callState == CallReady)?
???????
{
?????????????????
???????????
callState = CallRinging;
???????????
idManager.change(callState);
???????????
busyState = busyOn;
???????????
incomingStream =
new
NetStream(netConnection,caller.farID);
???????????
incomingStream.addEventListener(NetStatusEvent.NET_STATUS,statusHandler);
???????????
video =
new
Video();
???????????
video.attachNetStream(incomingStream);
???????????
remoteVideoDisplay.addChild(video);
???????????
incomingStream.play(
"caller"
);
???????????
???????????
var
st:SoundTransform =
new
SoundTransform(speakerVolumeSlider.value);
???????????
incomingStream.soundTransform = st;
???????????
var
i:
Object
=
new
Object
();
???????????
i.onIncomingCall =
function
(caller:
String
):
void
???????????
{
???????????????
if
(callState != CallRinging)
???????????????
{
???????????????????
txtInfo.text +=
"onIncomingCall: Wrong call state: "
+ callState +
"n"
;
???????????????????
return
;
???????????????
}
???????????????
send_bn.enabled=
true
;
???????????????
txtInfo.text +=? caller +
"已经成功与您连接上n"
;
???????????????
partnername = caller;
???????????????
???????????????
???????????????
callState = CallEstablished;
???????????????
???????????
}??
????????????
i.onIm =
function
(caller:
String
,text:
String
):
void
????????????
{
????????????????
txtMessage.text += caller+
": "
+text+
"n"
;
????????????
}
????????????
i.onDisconnected =
function
(caller:
String
):
void
????????????
{
????????????????
txtInfo.text += caller+
"和你断开连接n"
;
????????????????
send_bn.enabled=
false
;
????????????????
stop();
????????????
}??
???????????
incomingStream.client = i;
???????????
outgoingStream =
new
NetStream(netConnection,NetStream.DIRECT_CONNECTIONS);
???????????
outgoingStream.addEventListener(NetStatusEvent.NET_STATUS,callee_outgoingStreamHandler);
???????????
outgoingStream.attachCamera(camera);
???????????
outgoingStream.attachAudio(mic);
???????????
outgoingStream.publish(
"callee"
);
???????????
???????????
return
true
;
??????????
}
???????
txtInfo.text +=
"onPeerConnect: all rejected due to state: "
+ callState +
"n"
;
???????
???????
return
false
;
?????
}?
???????
listenStream.client = c;
???????
???????
???????
callState = CallReady;?????