如何使用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