Hi Everyone,
I’ve got several flv’s with a bunch of embedded cue points. I’m streaming these flvs from an FMS simultaneously and switching between them on the fly via a combobox. I’m trying to add some movieclips to the stage that represent the cue points so that when you switch to a new flv a new set of cue point markers will be generated for that clip. My problem is that I cannot find a way to get a list (or array) of the embedded cue points using the flvplayback component.
I’ve seen a way to do this using Netstream.onMetaData but i’d prefer to use the flvplayback. Here’s my code:
import fl.video.*;
import fl.video.MetadataEvent;
var _clipTime:Number=0;
var _transInit:Boolean=false;
var _prevBtn:int=0;
var _whichTrans:int = 1;
transPlayer.addEventListener(VideoEvent.PLAYING_STATE_ENTERED, initStream);
transPlayer.addEventListener(VideoEvent.PLAYING_STATE_ENTERED, playStream);
transPlayer.addEventListener(VideoEvent.PLAYHEAD_UPDATE, testSource);
feqBtn_cb.addEventListener(Event.CHANGE, switchStream);
feqBtn_cb.addItem({data:"rtmp://fmsserver/clip1", label:"clip1"});
feqBtn_cb.addItem({data:"rtmp://fmsserver/clip2", label:"clip2"});
feqBtn_cb.addItem({data:"rtmp://fmsserver/clip3", label:"clip3"});
feqBtn_cb.addItem({data:"rtmp://fmsserver/clip4", label:"clip4"});
feqBtn_cb.addItem({data:"rtmp://fmsserver/clip5", label:"clip5"});
feqBtn_cb.addItem({data:"rtmp://fmsserver/clip6", label:"clip6"});
for (var i = 0; i<feqBtn_cb.length; i++) {
transPlayer.activeVideoPlayerIndex=i;
transPlayer.autoPlay=false;
transPlayer.source=feqBtn_cb.getItemAt(i).data;
}
transPlayer.addEventListener(MetadataEvent.METADATA_RECEIVED, testCP);
function initStream(event:VideoEvent) {
_transInit=true;
transPlayer.activeVideoPlayerIndex=0;
transPlayer.visibleVideoPlayerIndex=0;
transPlayer.removeEventListener(VideoEvent.PLAYING_STATE_ENTERED, initStream);
transPlayer.addEventListener(VideoEvent.PAUSED_STATE_ENTERED, pauseStream);
}
function switchStream(event:Event) {
_clipTime=transPlayer.playheadTime;
var whichBtnIndex:int = event.currentTarget.selectedIndex;
transPlayer.activeVideoPlayerIndex=whichBtnIndex;
transPlayer.visibleVideoPlayerIndex=whichBtnIndex;
if (_transInit==true&&_prevBtn!=whichBtnIndex) {
transPlayer.play();
transPlayer.seek(_clipTime);
}
_prevBtn=whichBtnIndex;
}
function testCP(event:MetadataEvent) {
//This does not work... i get this error message
//ReferenceError: Error #1077: Illegal read of write-only property cuePoints on fl.video.FLVPlayback.
//trace(event.currentTarget.cuePoints);
}
function pauseStream(event:VideoEvent) {
testAnim.stop();
}
function playStream(event:VideoEvent) {
testAnim.play();
}
function testSource(event:VideoEvent) {
trace(Math.floor(transPlayer.playheadTime));
testAnim.gotoAndStop(Math.floor(transPlayer.playheadTime));
}