2010-12-15 4 views
3

Je crée un jeu flash qui a la fonctionnalité de capturer/enregistrer son gameplay qui peut être consulté plus tard par l'utilisateur, comme une rediffusion. Pour l'instant, je suis déjà capable d'enregistrer le jeu et de l'écrire dans un format flv dans une variable ByteArray. Ce que je travaille en ce moment, c'est comment envoyer ce ByteArray (le fichier vidéo) à un script php et l'enregistrer sur un serveur web.Comment envoyer des données au format FLV dans byteArray en utilisant URLloader vers un script php?

J'ai couru dans l'URLLoader dans le flash où il peut envoyer les données et php le recevra par la méthode POST. Malheureusement, le ByteArray contenant les données flv doit d'abord être correctement codé pour que php le lise. Je l'ai compris à partir de l'exemple dans le net où il fait la même chose seulement qu'il envoie seulement un JPEG ByteArray au lieu d'un format FLV en utilisant le JPEGENCODER.

Existe-t-il une classe existante comme le JpegEncoder pour le format FLV ou tout autre format vidéo? Ou n'importe quel travail autour de la création de l'encodeur moi-même?

Merci d'avance les gars.

voici mon code actuel pour envoyer le ByteArray

  //send byteArray to a php script 
     var request:URLRequest = new URLRequest(url); 
     request.method = URLRequestMethod.POST; 

     //need to correctly encode first the ByteArray in FLV format 
     //.... 

     request.data = fs; //FLV byteArray 
     var loader:URLLoader = new URLLoader(); 
     trace(request.data); 

Répondre

3

Tout compris cela.

Je peux maintenant envoyer avec succès le byteArray flv dans un script php où le php le reçoit et l'enregistre en tant que fichier flv dans le système local et le télécharge sur le serveur youtube en utilisant zend framework.

Voici mon code en flash.

  //send byteArray to a php script 
     var header:URLRequestHeader = new URLRequestHeader ("Content-type", "application/octet-stream"); 
     var request:URLRequest = new URLRequest(url); 

     request.requestHeaders.push (header); 
     request.method = URLRequestMethod.POST; 

     request.data = fs; //FLV byteArray 
     var loader:URLLoader = new URLLoader(); 
     trace(request.data); 
     loader.load(request) 

et la scipt qui reçoit et l'enregistrer comme un fichier flv:

 $im = $GLOBALS["HTTP_RAW_POST_DATA"]; 
    $fp = fopen("testVid.flv", 'w');  
    fwrite($fp, $im); 
    fclose($fp); 

Il se trouve que je vraiment besoin de coder les byteArray comme ce que l'JPEGEncoder fait. Im encore très nouveau en flash et php cependant. Et je n'ai aucune idée si c'est la meilleure pratique que je peux avoir. Un conseil serait grandement apprécié. Merci les gars.

Questions connexes