如何使用URLloader将byteArray中的FLV格式数据发送到PHP脚本?

我正在创建Flash游戏,该游戏具有捕获/记录其游戏玩法的功能,这些功能可以由用户稍后查看,例如重播.

到目前为止,我已经能够录制游戏并将其写入ByteArray变量的flv格式中.

我现在正在工作的是如何将ByteArray(视频文件)发送到PHP脚本并将其保存到Web服务器.

我遇到了Flash中的URLLoader,它可以发送数据,而PHP将通过POST方法接收它.不幸的是,必须首先对包含flv数据的ByteArray进行正确编码,以便PHP读取它.我从网络中的示例中弄清楚了这一点,该示例仅在使用JPEGENCODER发送JPEG ByteArray而不是FLV格式的同时执行相同的操作.

是否有现有的类,例如用于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);

解决方法:

只是想通了.

我现在可以在PHP脚本中成功发送flv byteArray,然后PHP接收它并将其保存为flv文件在本地系统中,并使用zend框架将其上传到youtube服务器中.

这是我的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)

和接收并将其另存为flv文件的scipt:

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

事实证明,我真的不需要像JPEGEncoder那样对byteArray进行编码.我仍然是非常新的Flash和PHP.而且我不知道这是否是我可以拥有的最佳实践.一个建议将不胜感激.多谢你们.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐