Good question, both Play.start and the StreamNot found are both bubbled up through the OSMF typed APIs. When a video begins playing, it's PlayTrait's playState property is PlayState.PLAYING. You can listen for the playstate on the media player as well, which is much friendlier than the trait syntax. When it encounters SteamNotFound, this is bubbled up as a MediaErrorEvent.
function onPlayState(event: PlayEvent):void
//Process play start
//Process play stop
The StreamNotFound will be surfaced as a MediaErrorEvent.MEDIA_ERROR from the VideoElement. If you do happen to have some custom logic that need the metadata, use this line, once the media has loaded to attach a handler:
//Process media error here
And if you need something more, such as custom server callbacks, you can still get to the stream.client. Here is the code:
....Process Metadata Here...
Worked as a charm..Thanks a lot. Now, Same area, how can I listen for netConnection events, as connection success, failed, etc?
Lower level events, such as NetConnection success & fail are abstracted up through the framework via the Load events. Load events are triggered as state changes on the LoadTrait. The MediaPLayer doesn't fire LoadEvents, but abstracts them further as MediaPlayerStateChangeEvent.MEDIA_PLAYER_STATE_CHANGE events. Successful NetConnection is indicated by MediaPlayerState.READY. A connection error is indicated by the MediaPlayerState.PLAYBACK_ERROR.