Ciao a tutti,
premetto che ho pochissima esperienza su actionscript, ma mi è stato chiesto di realizzare un sistema che permetta agli utenti di un portale di registrare un piccolo videoclip attraverso la loro webcam e salvarlo per poi renderlo disponibile in visione.

Abbiamo a disposizione e già installato il server di streaming RED5, e questo integra, per chi lo conosce, anche un esempio che fa al caso mio. L'esempio si chiama "simpleRecorder", visionabile a questo indirizzo:
http://www.digs.jp:5080/demos/simpleRecorder.swf

Purtroppo però questo esempio andrebbe modificato nel senso che ad esempio l'url del server red5 e dell'applicativo che si occupa dello streaming non posso farlo inserire all'utente, oltre al fatto che i pulsanti per lo "start recording" e "stop recording" andrebbero modificati per renderli più "intuitivi".

Di questo esempio non c'è il .fla che mi permetterebbe magari la modifica e quindi mi sono armato di pazienza(anche se la sto perdendo) e sto provando a farlo, con scarsissimi risultati.

posto il codice actionscript cosicchè qualcuno magari mi può dare qualche dritta:

codice:
// Oggetto necessario per instaurare la connessione al server 
var nc:NetConnection=new NetConnection();  
// Stream dedicato alla pubblicazione del flusso sul server 
var out_ns:NetStream; 
// Crea un oggetto Camera 
var publisher_cam:Camera;  
// Crea un oggetto Microfono 
var publisher_mic:Microphone;  
var idStream:String; 
var streamingServer:String; 
var streamingStarted:Boolean = false;  

/*** GESTIONE EVENTI PULSANTI ***/  
startRecording.onPress = function(){ 	
doPublish("1");	 
}  
stopRecording.onPress = function(){ 	
stopPublish("2"); 
}  

init(); 
/*** FINE GESTIONE EVENTI PULSANTI ***/  
function doConnect(){ 	
status_txt.text="Connecting to "+ streamingServer +"...\n";
nc.connect(streamingServer); 
}  

function doPublish(idStream:String){ 	
publishStream(idStream); 
}  

function stopPublish(idStream:String){ 	
stopPublishStream(idStream); 
}  

/* PUBBLICA LO USER STREAM SUL SERVER DI STREAMING */ 
function publishStream(idStream:String){ 	
status_txt.text+="[INFO] Publishing Started for stream" + idStream + "\n"; 	 	
// Collego la web cam all'oggetto  	
// video presente sullo stage 	
previewVideo.attachVideo(publisher_cam);	 	 	
//Inserisco l'audio al flusso 	
out_ns.attachAudio(publisher_mic); 	 	
// Inserisco il video al flusso 	
out_ns.attachVideo(publisher_cam); 	 	
// Pubblico sul server Red5  	
// il flusso audiovisivo  	
out_ns.publish("stream"+idStream); 	 	
startRecording.enabled = false; 	
stopRecording.enabled = true; 	 	
out_ns.onStatus = function(info){
if(info.code!="NetStream.Publish.BadName"){ 			
streamingStarted = true;
status_txt.text+="[OK] Trasmissione avviata";
}else{
status_txt.text+="[INFO]" + info.code + "\n";
} 		 	
} 	
}  

/* PUBBLICA LO USER STREAM SUL SERVER DI STREAMING */ 
function stopPublishStream(idStream:String){ 	
status_txt.text+="[INFO] Stopping stream" + idStream + "\n";
previewVideo.attachVideo(null); 	
out_ns.attachAudio(null); 	
out_ns.attachVideo(null); 	
// Pubblico sul server Red5  	
// il flusso audiovisivo  	
out_ns.close("stream"+idStream); 	 	
stopRecording.enabled = false; 	
startRecording.enabled = true; 
} 

function init(id:String){ 	
idStream = id; 	
streamingServer="rtmp://mystreamingRED5Server/oflaDemo"; 	
width_txt.text=250; 	
height_txt.text=250; 	 	
doConnect(); 
}    

nc.onStatus = function(info){ 		
status_txt.text+="[INFO]" + info.code + "\n"; 		
// Se l'instaurazione della connessione è andata a buon fine
if(info.code=="NetConnection.Connect.Success"){ 				
//Inizializzo lo stream in uscita 				
out_ns = new NetStream(nc);
status_txt.text+="[INFO] Connected to Red5 Streaming Server" + "\n";

// Abilito il pulsante "Start recording" 				
startRecording.enabled=true;
// Imposto le proprietà del video trasmesso dalla WebCam
publisher_cam.setMode(width_txt.text, height_txt.text);
// Creo un riferimento alla videocamera
publisher_cam = Camera.get();
// Creo un riferimento al microfono
publisher_mic = Microphone.get();
}else{ 			
status_txt.text+="[ERROR]" + info.code; 		
} 
}    
/* GESTIONE CONNESSIONE AL SERVER */
Rimango in attesa che qualcuno di buona volontà abbia l'intenzione e la pazienza di leggere...