Jan
14
NetStream – onMetadata
Filed Under AS3, Flash & Flex
Metadata sisältää paljon käyttökelpoista informaatiota tiedostosta ja siihen voi upottaa miltei mitä tahansa dataa. Käytännöllisiä esimerkkejä ovat mm. tekstitykset, käyttöoikeudet sekä itse tiedostoon liittyvä statistiikka. Enkoodaukseen käytettävästä softasta riippuen oletuksena upotettava metadata vaihtelee suurestikin, mutta ainakin duration-ominaisuus löytyy varmasti jokaisesta.
Metadataan päästään käsiksi onMetaData-tapahtumakäsittelijän avulla, mutta sitä ennen pitää luonnollisesti odottaa, että ko. data on vastaanotettu Flashissa.
Jostain (ainakin minulle) tuntemattomasta syystä NetStream-luokan onMetaDataa kutsutaan perinteisen AS3 event modelin (addEventListener) sijaan suoraan NetStream-objektin kautta, joten tässä vielä muistutukseksi.
var metaObject:Object = new Object(); metaObject.onMetaData = metaDataListener; NetStreamObject.client = metaObject; function metaDataListener(o:Object):void { //koodi }
Tai vaihtoehtoisesti:
NetStreamObject.client = this; function onMetaData(o:Object):void { //koodi }
Ja vielä esimerkki “Main.as“:
package { import flash.display.Sprite; import flash.net.NetConnection; import flash.net.NetStream; public class Main extends Sprite { private var nc:NetConnection; private var ns:NetStream; public function Main() { nc = new NetConnection(); nc.connect(null); ns = new NetStream(nc); ns.client = this; ns.play("myVideo.flv"); } public function onMetaData(o:Object):void { var propName:String; for (propName in o) { trace(propName + ": " + o[propName]); } } } }
Comments
Leave a comment
