2010-12-15 6 views
3

リプレイのように後でユーザーが見ることができるゲームプレイをキャプチャ/記録する機能を持つフラッシュゲームを作成します。URLloaderを使用してPHPスクリプトにbyteArrayでFLV形式のデータを送信するにはどうすればよいですか?

今のところ、ゲームを録画して、それをByteArray変数にflv形式で書き込むことができます。

私は今、そのByteArray(ビデオファイル)をPHPスクリプトに送信してWebサーバーに保存する方法を教えています。

フラッシュでURLLoaderを実行して、データを送信し、PHPがPOSTメソッドでそれを受け取るようにしました。残念なことに、flvデータを含むByteArrayは、phpがそれを読み取るために最初に暗号化されている必要があります。これは、JPEGENCODERを使用しているFLV形式ではなく、JPEG ByteArrayを送信するだけであるという点で、ネット上の例から分かりました。

FLV形式または任意のビデオ形式のJpegEncoderのような既存のクラスはありますか?エンコーダを自分のように作成するのと同じように、

ありがとうございました。

はここだけで、これを考え出した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); 

答えて

3

を送信するために私の現在のコードです。

これで、flv byteArrayをphpスクリプトで正常に送信し、そこでphpがそれを受け取ってローカルシステムにflvファイルとして保存し、zend frameworkを使用してYouTubeサーバーにアップロードすることができます。

ここは私のコードです。

  //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) 

と受け取り、FLVファイルとして保存ザ・スクリプト:

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

それは私が本当にJPEGEncoderが何をしているかのようなのByteArrayをエンコードする必要がいけないことが判明。私はまだフラッシュとPHPで非常に新しいです。これがベストプラクティスであるかどうかは私には分かりません。アドバイスをいただければ幸いです。みんなありがとう。

関連する問題