Although not FLV, I wrote a sample AMF 0/AMF 3 client based on 
flash.utils.ByteArray and flash.net.URLLoader. See my blog entry 
http://blogs.adobe.com/pfarland/2008/06/using_amf_with_flashneturlload.html 
which mentions the ActionScript source which was submitted to BlazeDS as an 
attachment to BLZ-209. See amf.zip at:
https://bugs.adobe.com/jira/browse/BLZ-209

For FLV, the key is to understand the Type column for each field. I took a 
quick look at the spec and it seems to use conventions similar to the SWF 
format.

private function onComplete(e:Event):void
{
        var ba:ByteArray = loader.data as ByteArray;
 
      if (ba != null && ba.length > 9)
      {
          // Peek at the first 3 bytes to check for 'F' 'L' 'V'
          if (ba.readUnsignedByte() == 0x46 && ba.readUnsignedByte() == 0x4C && 
ba.readUnsignedByte() == 0x56)
          {
              ba.position = 0;
              decodeFLV(ba);
          }
      }
}

i.e. For UI8, use readUnsignedByte() to get a uint
For UB[n], use readUnsignedByte() and then shift to find the relevant bit(s) 
for each flag.
For UI32, use readUnsignedInt() to get a uint
For UI24, use 3 successive readUnsignedBytes() and shift values appropriately 
to form a uint from the 24bits.
etc...

Pete


-----Original Message-----
From: flexcoders@yahoogroups.com [mailto:flexcod...@yahoogroups.com] On Behalf 
Of gilbert_mizrahi
Sent: Wednesday, March 18, 2009 6:44 PM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] Re: Where I can examples of how to use ByteArray

Alex, Thanks. Yes I have seen that, but there is noting similar for what I 
want, that is to read the flv content to get its tags according to FLV spec 
from http://www.adobe.com/devnet/flv/.

Pete, that is a good starting point, thank you. However, I need more help to be 
able to "read" the data from the FLV. readByte() returns an int and readBytes 
expects at least one parameter of type ByteArray which I have no clue what to 
put in there. And readObject(0 throws an ouf of bounds error.

Gilbert

--- In flexcoders@yahoogroups.com, Peter Farland <pfarl...@...> wrote:
>
> You may want to have loader as a member variable so that you can access it in 
> other contexts or make subsequent requests without using init()
> 
> private var loader:URLLoader;
> 
> 
> Also, you should set the loader.dataFormat to URLLoaderDataFormat.BINARY 
> before loading binary data. See:
> http://livedocs.adobe.com/flex/3/langref/flash/net/URLLoader.html#dataFormat
> 
> Finally, in the complete event, you can cast loader.data to a ByteArray:
> 
> private function onComplete(e:Event):void
> {
>       var byteArr:ByteArray = loader.data as ByteArray;
>       // ...
> }
> 
> Pete
> 
> -----Original Message-----
> From: flexcoders@yahoogroups.com [mailto:flexcod...@yahoogroups.com] On 
> Behalf Of gilbert_mizrahi
> Sent: Wednesday, March 18, 2009 11:22 AM
> To: flexcoders@yahoogroups.com
> Subject: [flexcoders] Where I can examples of how to use ByteArray
> 
> I have searched everywhere and I can't find useful examples of how to use the 
> ByteArray class and the Flex 3 documentation does not include much.
> 
> I want to read and FLV file with ByteArray, but I don't know how.
> 
> I tried:
> 
> private function init():void
>     {
>     var request:URLRequest = new URLRequest("assets/street.flv");
>     var loader:URLLoader = new URLLoader();
>    try {
>       loader.load(request);
>    } catch (error:ArgumentError) {
>       trace("An ArgumentError has occurred.");
>    } catch (error:SecurityError) {
>       trace("A SecurityError has occurred.");
>                               }
>    loader.addEventListener(Event.COMPLETE, onComplete);
> }
> 
> private function onComplete(e:Event):void
> {
>       var byteArr:ByteArray = new ByteArray ();
>       byteArr.readByte(); //????
>       trace("byteArr "+byteArr);
> }
> 
> the ByteArray readByte method accept 0 parameters, so what should I do?
> 
> 
> 
> ------------------------------------
> 
> --
> Flexcoders Mailing List
> FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> Alternative FAQ location: 
> https://share.acrobat.com/adc/document.do?docid=942dbdc8-e469-446f-b4cf-1e62079f6847
> Search Archives: 
> http://www.mail-archive.com/flexcoders%40yahoogroups.comYahoo! Groups Links
>




------------------------------------

--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Alternative FAQ location: 
https://share.acrobat.com/adc/document.do?docid=942dbdc8-e469-446f-b4cf-1e62079f6847
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.comYahoo! 
Groups Links



Reply via email to