01
Aug
07

Adding ActionScript cue points using the CuePointManager

I was just playing around with the VideoDisplay.cuePointManager property, and made a pretty crude FLV player. The FLV URL is hard-coded, so it really isn’t very useful, but it shows how you can use the cuePointManager property and addCuePoint() method to add ActionScript cue points to an FLV.

Full code after the jump.

<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2007/08/01/adding-actionscript-cue-points-using-the-cuepointmanager/ -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
        layout="vertical"
        verticalAlign="middle"
        backgroundColor="white">

    <mx:Script>
        <![CDATA[
            [Bindable]
            private var FLV_URL:String = "http://www.helpexamples.com/flash/video/cuepoints.flv";

            private function videoDisplay_addCuePoint(evt:MouseEvent):void {
                var cpTime:String = videoDisplay.playheadTime.toFixed(3);
                var cpName:String = 'cp' + (parseFloat(cpTime) * 1000);

                videoDisplay.cuePointManager.addCuePoint({name:cpName, time:cpTime});

                lbl.text = videoDisplay.cuePointManager.getCuePoints().length + " cue point(s)";
            }

            private function toggleVideoPlayback():void {
                (videoDisplay.playing) ? videoDisplay.pause() : videoDisplay.play();
            }

            private function updateProgressBar():void {
                progressBar.setProgress(videoDisplay.playheadTime, videoDisplay.totalTime)
            }
        ]]>
    </mx:Script>

    <mx:Label text="Click video to begin playback" />

    <mx:Panel title="{FLV_URL.split('/').pop()} ({videoDisplay.totalTime.toFixed(2)})" id="panel" visible="false">
        <mx:HBox>
            <mx:VBox>
                <mx:VideoDisplay id="videoDisplay" source="{FLV_URL}" autoPlay="false" ready="panel.visible = true" cuePointManagerClass="mx.controls.videoClasses.CuePointManager" click="toggleVideoPlayback()" playheadUpdate="updateProgressBar()" />
                <mx:ProgressBar id="progressBar" width="{videoDisplay.width}" mode="manual" label="{videoDisplay.playheadTime.toFixed(2)} / -{(videoDisplay.totalTime - videoDisplay.playheadTime).toFixed(2)} (%3%%)" />
            </mx:VBox>
            <mx:VBox>
                <mx:DataGrid id="dataGrid" width="{videoDisplay.width}" height="{videoDisplay.height}" dataProvider="{videoDisplay.cuePoints}" change="videoDisplay.playheadTime = event.currentTarget.selectedItem.time" />
                <mx:HBox width="100%">
                    <mx:Button label="add cue point" click="videoDisplay_addCuePoint(event)" />
                    <mx:Label id="lbl" width="100%" textAlign="right" />
                </mx:HBox>
            </mx:VBox>
        </mx:HBox>
    </mx:Panel>

</mx:Application>

5 Responses to “Adding ActionScript cue points using the CuePointManager”


  1. 1 Skye Aug 6th, 2007 at 1:06 pm

    Peter,

    This site is excellent in both concept and content. Kudos!

  2. 2 Artemis Jan 10th, 2008 at 12:37 pm

    There seems to be a FLEX BUG w dynamic cue points >=10 secs for VideoDisplay objs that were attached (via addChild() to a UIComponent which serves as a “stage”. Adding cue points =>10 secs screws up all cue points.

    ??

  3. 3 peterd Jan 10th, 2008 at 1:01 pm

    Artemis,

    Can you log the bug (with source code, if possible) at http://bugs.adobe.com/flex/, and post the bug number here so I can take a look.

    Thanks,
    Peter

  4. 4 Artemis Jan 10th, 2008 at 3:10 pm

    ASC-3112 under ActionScript

  5. 5 peterd Jan 10th, 2008 at 11:15 pm

    Artemis,

    Thanks, I moved it to the SDK/VideoDisplay project/feature so it appears in my queue and I can hopefully look at it tomorrow or over the weekend if I get some time.

    We’re fairly late in the Flex 3 development cycle, so I’m not sure if we can sneak this in before release, but I’ll see what we can do.

    Thanks for the heads up,
    Peter

Leave a Reply

This blog is terrible at eating HTML tags. If you plan on posting code/XML, please escape your "<" characters as "&lt;" and your ">" characters as "&gt;".




Badge Farm

  • Firefox 2
  • Powered by Redoable 1.2
  • Feeds burnt by Feedburner
  • Feed