编程语言
首页 > 编程语言> > 如何使用URLloader将byteArray中的FLV格式数据发送到PHP脚本?

如何使用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.而且我不知道这是否是我可以拥有的最佳实践.一个建议将不胜感激.多谢你们.

标签:flash,apache-flex,php
来源: https://codeday.me/bug/20191208/2094930.html