我有一個視頻文件在我的本地system.I正在使用Windows XP在我的系統。現在我想將這個視頻文件字節數組發送到Flash Builder(Flex 4)中的服務器。我在服務器端使用PHP。如何字節數組發送到在Flash Builder服務器(Flex 4中)
我怎樣才能做到這一點?請指導
感謝
我有一個視頻文件在我的本地system.I正在使用Windows XP在我的系統。現在我想將這個視頻文件字節數組發送到Flash Builder(Flex 4)中的服務器。我在服務器端使用PHP。如何字節數組發送到在Flash Builder服務器(Flex 4中)
我怎樣才能做到這一點?請指導
感謝
Socket.writeBytes()會做你所需要的。
通過this link: 。
// serialization
var serializedSound:ByteArray;
serializedSound = serializeSound(sound);
serializedSound.position = 0;
// unserialization
var newSound:Sound = new Sound();
newSound.addEventListener(SampleDataEvent.SAMPLE_DATA, deserialize);
newSound.play();
function serializeSound(sound:Sound):ByteArray
{
var result:ByteArray = new ByteArray();
while(sound.extract(result, 8192)){
result.position = result.length;
}
return result;
}
function deserialize(e:SampleDataEvent):void
{
for (var c:int=0; c<8192; c++) {
if(serializedSound.bytesAvailable < 2) break;
e.data.writeFloat(serializedSound.readFloat());
e.data.writeFloat(serializedSound.readFloat());
}
}
你需要發送bytearray到PHP還是獲取bytearray?
用於發送字節組可以使用Zend_AMF: http://framework.zend.com/download/amf
這將處理所有的轉換,並在PHP,你將通過一個變量(我用的變量引用作爲獲得字節組作爲一個字符串:&$file
保存在撥打方法的)
以下一些內存是一些代碼片斷,它可以幫助你: Sending ByteArray to Zend_Amf
對於獲得的ByteArray可以使用FileReference load()方法到g等一個本地文件的所有字節數組。
你知道,在創建Flex中視頻的ByteArray逐字存儲該視頻記憶吧?任何類型的大型或未壓縮的視頻都會使用大量的客戶端內存,如果Flash達到其內存限制,可能會導致錯誤。
我不認爲你會以正確的方式進行。我建議你做的只是將視頻上傳到服務器,然後再訪問服務器中的字節。如果你想上傳視頻到服務器,看看這裏的教程,它展示瞭如何從Flex上傳文件和PHP腳本來獲取和存儲文件:http://livedocs.adobe.com/flex/3/html/17_Networking_and_communications_7.html#118972
從這裏,PHP可以訪問字節如果你這麼傾向。
AS3代碼:
uploadURL = new URLRequest();
uploadURL.url = "upload.php?fileName=videotrack";
uploadURL.contentType = 'application/octet-stream';
uploadURL.method = URLRequestMethod.POST;
uploadURL.data = rawBytes;
urlLoader = new URLLoader();
urlLoader.addEventListener(Event.COMPLETE, completeHandler);
urlLoader.load(uploadURL);
rawBytes
是要上傳到服務器的字節數組。
PHP代碼
$fileName = $_REQUEST['fileName'] . ".mp3";
$fp = fopen($fileName, 'wb');
fwrite($fp, $GLOBALS[ 'HTTP_RAW_POST_DATA' ]);
fclose($fp);
我已經使用了.mp3擴展名,因爲我的字節數組是從一個MP3文件中的數據,但您可以設定擴展到任何類型的文件的字節數組表示的。
希望這會幫助你。
我想寫我的本地系統視頻文件到服務器。我應該在flex 4中做什麼,這樣我就可以做到這一點。 – Vivek 2011-03-24 07:50:56
我這樣做是這樣的:
的 {的ByteArray} S:的HTTPService> FX:聲明>但是當我使用上述代碼flashbuilder編輯器是顯示警告「數據綁定將無法檢測到字節數組的分配」,我做錯了。請指導。謝謝 –
Vivek
2011-03-24 07:59:41