Skip to main content
July 27, 2009
Question

Handeling FLV metadata

  • July 27, 2009
  • 1 reply
  • 1413 views

I am trying to get metadate from my NetStream object and do things depending on what is going on. here is what I have, but I get an error I don't know what it means.

var customClient:Object = new Object();

customClient.onMetaData = metaDataHandler;

function metaDataHandler(infoObject:Object):void {

     switch (infoObject.info.code) {

          case "NetStream.Play.Start":

               trace("It is playing!!!");

               break;

          case "NetStream.Play.Stop":

               trace("It stoped playing!!!");

               break;

     }

}

The error I get is:

Error #2044: Unhandled AsyncErrorEvent:. text=Error #2095: flash.net.NetStream was unable to invoke callback onMetaData. error=TypeError: Error #1010: A term is undefined and has no properties.

at AMG_ASP_ICS_072709_fla::MainTimeline/frame1()

What am I missing here?

Thank you for any help on this!!!

This topic has been closed for replies.

1 reply

kglad
Community Expert
Community Expert
July 27, 2009

yournetstreaminstance.client=customClient

customClient.onMetaData = function (infoObject:Object):void {

     switch (infoObject.info.code) {

          case "NetStream.Play.Start":

               trace("It is playing!!!");

               break;

          case "NetStream.Play.Stop":

               trace("It stoped playing!!!");

               break;

     }

}


July 27, 2009

I think I had all of that. Here is what  have, That is the same as yours right?

var customClient:Object = new Object();
customClient.onMetaData = metaDataHandler;

var myVideo:Video = new Video();
myVideo.x = 11;
myVideo.y = 88;
myVideo.width = 1002;
myVideo.height = 548;
addChild(myVideo);

var nc:NetConnection = new NetConnection();
nc.connect(null);

var ns:NetStream = new NetStream(nc);
ns.client = customClient;
myVideo.attachNetStream(ns);
ns.play("video/testVid.flv");


function metaDataHandler(infoObject:Object):void {
    switch (infoObject.info.code) {
        case "NetStream.Play.Start":
            playBtn.btnIcon.filters = [vidNavGlow];
            break;
        case "NetStream.Play.Stop":
            playBtn.btnIcon.filters = [];
            break;
    }
}

kglad
Community Expert
Community Expert
July 27, 2009

yes, that works.  you just need to fix your onMetaData function:

function metaDataHandler(infoObject:Object):void {
    for(var obj:String in infoObject){
        trace(obj,infoObject[obj]);
    }
}