Как отправить данные формата FLV в byteArray с помощью URLloader в php-скрипт? - PullRequest
3 голосов
/ 15 декабря 2010

Я создаю флеш-игру, в которой есть функция захвата / записи своего игрового процесса, которую пользователь может просмотреть позже, например, воспроизведение.

На данный момент я уже могу записать игру и записать ее в формат flv в переменной ByteArray.

Сейчас я работаю над тем, как отправить этот ByteArray (видеофайл) в скрипт php и сохранить его на веб-сервере.

Я столкнулся с URLLoader во флэш-памяти, где он может отправлять данные, и php получит их через метод POST. К сожалению, ByteArray, содержащий данные flv, должен быть сначала закодирован для корректного чтения php. Я понял это из примера в сети, где он делает то же самое, только что он отправляет только ByteArray JPEG вместо формата FLV, используя JPEGENCODER.

Существует ли какой-либо существующий класс, такой как JpegEncoder для формата FLV или каких-либо видеоформатов? Или какая-нибудь работа вокруг, как создание кодировщика самостоятельно?

Заранее спасибо, ребята.

вот мой текущий код для отправки 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);

1 Ответ

3 голосов
/ 16 декабря 2010

Только что понял.

Теперь я могу успешно отправить flv byteArray в php-скрипт, где php получит его, сохранит как файл flv в локальной системе и загрузит на сервер youtube с помощью zend.Framework.

вот мой код во флэш-памяти.

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

Оказывается, мне действительно не нужно кодировать массив byteArray, как это делает JPEGEncoder.Я все еще очень новичок во флэш и PHP, хотя.И я понятия не имею, если это лучшая практика, которую я могу иметь.Совет будет принята с благодарностью.Спасибо, ребята.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...