Показать сообщение отдельно
Старый 02.09.2011, 16:25
cheluskin вне форума Посмотреть профиль Отправить личное сообщение для cheluskin Найти все сообщения от cheluskin
  № 6  
Ответить с цитированием
cheluskin

Регистрация: May 2011
Сообщений: 26
Вы всё правильно делаете. Посмотрите внимательно примеры на этой странице, http://www.adobe.com/devnet/flashmed...fp_groups.html
сверху справа можно скачать архив с примером.

Вы создали исходящий поток и приходящий, но проблема в том, что перед тем как присоединять звук к исходящему потоку нужно убедиться что поток к этому готов, для этого вы и написали строку

Код AS3:
outcomingStream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
но вы на netStatusHandler что-то повесили ? Например как это сделано у меня

Код AS3:
protected function onNetStatus( event:NetStatusEvent ):void
			{
				_logMsg( event.info.code );
				switch( event.info.code )
				{
 
					case "NetConnection.Connect.Success":
					{
						// We're connected...set the flag
						_netConnectionConnected = true;
						_createGroupSpec();
						onStartOutgoingStream();
						// We've connected to stratus, let's cache our ID
						_nearID = event.target.nearID;
 
						if (tmt != -1){
							clearInterval(tmt);
							tmt = -1;
 
						}
						net_indicator_grean.visible = true;
						net_indicator_red.visible = false;
						nearid = _netConnection.nearID;
 
						// Let's create a Group to use with NetStream and NetGroup
						_createGroupSpec();
						break;
					}
					case "NetConnection.Connect.Closed":
					{
						restartConnection();
						net_indicator_grean.visible = false;
						net_indicator_red.visible = true;
					}
					case "NetConnection.Connect.Failed":
					{
						restartConnection();
						net_indicator_grean.visible = false;
						net_indicator_red.visible = true;
					}
					case "NetConnection.Connect.Rejected":
					{
						restartConnection();
						net_indicator_grean.visible = false;
						net_indicator_red.visible = true;
					}
					case "NetConnection.Connect.AppShutdown":
					{
						restartConnection();
						net_indicator_grean.visible = false;
						net_indicator_red.visible = true;
					}
					case "NetConnection.Connect.InvalidApp":
					{
 
						if( _netGroup )
						{
							clearNetGroup();
						}
						restartConnection();
						// clear references
 
						_outgoingStream = null;
						_incomingStream = null;
 
 
 
						// reset flags
						_netConnectionConnected = false;
						_outgoingStreamOn = false;
						_incomingStreamOn = false;
						net_indicator_grean.visible = false;
						net_indicator_red.visible = true;
 
						break;
					}
					case "NetStream.Connect.Success":
					{
						// Our stream connected successfully
						// Let's attach video and audio (either local or remote)
 
 
						if( _outgoingStreamOn )
						{
							_attachLocalVideoAndAudio();
						}
 
 
 
						break;		
					}
					case "NetStream.Connect.Rejected":
					case "NetStream.Connect.Failed":
					{
						// Our stream failed to connect
						if( _outgoingStreamOn )
						{
							_outgoingStreamOn = false;						
						}
						else
						{
							_incomingStreamOn = false;
						}
						break;
					}	
					case "NetStream.Publish.Start":
					{
						// outgoing stream is now published.
						break;
					}
					case "NetStream.MulticastStream.Reset":
					case "NetStream.Buffer.Full":
					default:
					{
						break;	
					}
						// NetGroup Connection Events fire from NetConnection
					case "NetGroup.Connect.Success":
					{ 
 
 
						// let's let the app know the NetGroup is connected
						_netGroupConnected = true;
 
 
						net_indicator_grean.visible = true;
						net_indicator_red.visible = false;
						question = true;
						sendQuestion();
						setTimeout(disableQuestion,10000);
 
						nb = _netGroup.convertPeerIDToGroupAddress(_netConnection.nearID);
 
 
 
 
						// Let's update the estimated member count
						_estimatedP2PMembers = _netGroup.estimatedMemberCount;						
						break;
					}		
					case "NetGroup.Connect.Rejected":
					case "NetGroup.Connect.Failed":
					{
						// let's clear the NetGroup ref and listener
						clearNetGroup();
						break;
					}																				
				}
			}
обратите внимание на этот участок

Код AS3:
case "NetStream.Connect.Success":
					{
						// Our stream connected successfully
						// Let's attach video and audio (either local or remote)
 
 
						if( _outgoingStreamOn )
						{
							_attachLocalVideoAndAudio();
						}
видите тут по событию NetStream.Connect.Success атачится моё видео и аудио , а не сразу при запуске потока , как у вас сделано. Я попробовал только что запихнуть атач звука прямо в функцию старта потока и тоже перестало работать. Но странно как у Вас работает в одну сторону.