Verwenden von Cue-Points

Ein Cue-Point ist ein Punkt, an dem der Video-Player ein cuePoint -Ereignis auslöst, während eine Videodatei abgespielt wird. Sie können einer FLV-Datei an den Stellen Cue-Points hinzufügen, an denen für andere Elemente auf der Webseite eine Aktion ausgeführt werden soll. Möglicherweise möchten Sie an einer bestimmten Stelle des Videos Text oder eine Grafik anzeigen, oder das Video mit einer Flash-Animation synchronisieren, oder das Abspielen der FLV-Datei unterbrechen, zu einem anderen Punkt spulen oder zu einer anderen FLV-Datei wechseln. Mit Cue-Points erhalten Sie in Ihrem ActionScript-Code Steuerungsmöglichkeiten und Sie können Punkte in der FLV-Datei mit anderen Aktionen auf der Webseite synchronisieren.

Es gibt drei Arten von Cue-Points: Navigation, Ereignis und ActionScript. Die Cue-Points für Navigation und Ereignisse werden auch als eingebettete Cue-Points bezeichnet, da sie in den FLV-Dateistream und in das Metadatenpaket der FLV-Datei eingebettet sind.

Ein Navigations-Cue-Point ermöglicht die Suche nach einem bestimmten Bild in der FLV-Datei, da er ein Schlüsselbild in der FLV-Datei erstellt, das sich so nah wie möglich bei der von Ihnen angegebenen Zeit befindet. Ein Schlüsselbild ist ein Datensegment, das sich zwischen den Einzelbildern im FLV-Dateistream befindet. Wenn Sie einen Vor- oder Rücklauf zu einem Navigations-Cue-Point ausführen, spult die Komponente bis zum Schlüsselbild vor oder zurück und startet das Ereignis cuePoint .

Ein Ereignis-Cue-Point ermöglicht es Ihnen, einen Zeitpunkt in der FLV-Datei mit einem externen Ereignis auf der Webseite zu synchronisieren. Das Ereignis cuePoint tritt genau zur angegebenen Zeit ein. Cue-Points für die Navigation und für Ereignisse können mithilfe des Videoimportassistenten oder mit Flash Video Encoder in einer FLV-Datei eingebettet werden. Weitere Informationen zum Videoimportassistenten und zum Flash Video Encoder finden Sie in der Dokumentation Flash verwenden in Kapitel 16, „Arbeiten mit Video“.

Ein ActionScript-Cue-Point ist ein externer Cue-Point, den Sie im Dialogfeld „Flash Video Cue-Points“ der Komponente oder mit der Methode FLVPlayback.addASCuePoint() hinzufügen können. Die Komponente speichert ActionScript-Cue-Points getrennt von der FLV-Datei, weshalb sie nicht so genau wie eingebettete Cue-Points sein können. ActionScript-Cue-Points sind bis auf eine Zehntelsekunde genau. Sie können die Genauigkeit von ActionScript-Cue-Points verbessern, indem Sie den Wert der Eigenschaft playheadUpdateInterval verringern, da die Komponente das Ereignis cuePoint für ActionScript-Cue-Points generiert, wenn der Abspielkopf aktualisiert wird. Weitere Informationen finden Sie im Abschnitt zur FLVPlayback.playheadUpdateInterval-Eigenschaft im ActionScript 3.0 Referenzhandbuch für Flash Professional .

In ActionScript und in den Metadaten der FLV-Datei wird ein Cue-Point als Objekt mit den folgenden Eigenschaften dargestellt: name , time , type und parameters . Die Eigenschaft name ist ein String, der den zugewiesenen Namen des Cue-Points enthält. Die Eigenschaft time ist eine Zahl, die in Stunden, Minuten, Sekunden und Millisekunden (HH:MM:SS.mmm) angibt, wann der Cue-Point eintritt. Die Eigenschaft type ist ein String mit dem Wert "navigation" , "event" oder "actionscript" , abhängig davon, welche Art Cue-Point Sie erstellt haben. Die Eigenschaft parameters ist ein Array von festgelegten Name/Wert-Paaren.

Wenn ein Ereignis cuePoint eintritt, ist das Cue-Point-Objekt im Ereignisobjekt über die Eigenschaft info verfügbar.

Verwenden des Dialogfelds „Flash Video Cue-Points“

Öffnen Sie das Dialogfeld „Flash Video Cue-Points“, indem Sie im Komponenten-Inspektor auf die Zelle „Wert“ für den Parameter cuePoints doppelklicken. Das Dialogfeld sieht wie in der folgenden Abbildung aus:

Grafik in Originalgröße anzeigen
Dialogfeld „Cue Points“

Im Dialogfeld sind eingebettete Cue-Points und ActionScript-Cue-Points aufgeführt. Sie können in diesem Dialogfeld ActionScript-Cue-Points sowie Cue-Point-Parameter hinzufügen und löschen. Außerdem können Sie eingebettete Cue-Points aktivieren oder deaktivieren. Es ist jedoch nicht möglich, in diesem Dialogfeld eingebettete Cue-Points hinzuzufügen, zu ändern oder zu löschen.

Hinzufügen eines ActionScript-Cue-Point:

  1. Doppelklicken Sie im Komponenten-Inspektor auf die Zelle „Wert“ des Parameters cuePoints , um das Dialogfeld „Flash Video Cue-Points“ zu öffnen.

  2. Klicken Sie oben links im Dialogfeld auf das Pluszeichen (+), um einen Standardeintrag für einen ActionScript-Cue-Point hinzuzufügen.

  3. Klicken Sie in der Spalte „Name“ auf den Text „Neuer Cue-Point“ und geben Sie einen Namen für den Cue-Point ein.

  4. Klicken Sie auf den Zeitwert 00:00:00:000, um ihn zu bearbeiten, und geben Sie einen Zeitpunkt ein, zu dem der Cue-Point eintreten soll. Sie können die Zeit in Stunden, Minuten, Sekunden und Millisekunden (HH:MM:SS.mmm) angeben.

    Falls mehrere Cue-Points vorhanden sind, wird der neue Cue-Point an die entsprechende Position in der chronologischen Reihenfolge der Liste verschoben.

  5. Um einen Parameter für den ausgewählten Cue-Point hinzuzufügen, klicken Sie auf das Pluszeichen (+) über dem Bereich „Parameter“ und geben Sie Werte in die Spalten „Name“ und „Wert“ ein. Wiederholen Sie diesen Schritt für jeden Parameter.

  6. Wenn Sie weitere ActionScript-Cue-Points hinzufügen möchten, wiederholen Sie jeweils die Schritte 2 bis 5.

  7. Klicken Sie auf „OK“, um die Änderungen zu speichern.

Löschen eines ActionScript-Cue-Point:

  1. Doppelklicken Sie im Komponenten-Inspektor auf die Zelle „Wert“ des Parameters cuePoints , um das Dialogfeld „Flash Video Cue-Points“ zu öffnen.

  2. Wählen Sie den zu löschenden Cue-Point aus.

  3. Klicken Sie oben links über der Liste der Cue-Points auf das Minuszeichen (-), um den Cue-Point zu löschen.

  4. Wiederholen Sie die Schritte 2 und 3 für alle Cue-Points, die Sie löschen möchten.

  5. Klicken Sie auf „OK“, um die Änderungen zu speichern.

Aktivieren oder Deaktivieren eines eingebetteten Cue-Point in einer FLV-Datei:

  1. Doppelklicken Sie im Komponenten-Inspektor auf die Zelle „Wert“ des Parameters cuePoints , um das Dialogfeld „Flash Video Cue-Points“ zu öffnen.

  2. Wählen Sie den Cue-Point aus, den Sie aktivieren oder deaktivieren möchten.

  3. Klicken Sie auf den Wert in der Spalte „Typ“, um das Popupmenü zu öffnen, oder klicken Sie auf den Pfeil nach unten.

  4. Klicken Sie auf den Namen des Cue-Point-Typs (z. B. Ereignis oder Navigation), um ihn zu aktivieren. Klicken Sie auf „Deaktiviert“, um den Cue-Point zu deaktivieren.

  5. Klicken Sie auf „OK“, um die Änderungen zu speichern.

Verwenden von Cue-Points mit ActionScript

Mithilfe von ActionScript können Sie ActionScript-Cue-Points hinzufügen, auf cuePoint -Ereignisse warten, beliebige Cue-Points oder Cue-Points eines bestimmten Typs suchen, einen Vor- oder Rücklauf zu einem Navigations-Cue-Point ausführen, Cue-Points aktivieren oder deaktivieren, überprüfen, ob ein Cue-Point aktiviert ist und Cue-Points entfernen.

Für die Beispiele in diesem Abschnitt wird die FLV-Datei „cuepoints.flv“ verwendet, die die drei folgenden Cue-Points enthält:

Name

Zeit

Typ

point1

00:00:00.418

Navigation

point2

00:00:07.748

Navigation

point3

00:00:16.020

Navigation

Hinzufügen von ActionScript-Cue-Points

Sie können einer FLV-Datei mithilfe der Methode addASCuePoint() ActionScript-Cue-Points hinzufügen. Im folgenden Beispiel werden der FLV-Datei zwei ActionScript-Cue-Points hinzugefügt, wenn sie zum Abspielen bereit ist. Der erste Cue-Point wird mithilfe eines Cue-Point-Objekts hinzugefügt, mit dessen Eigenschaften die Zeit, der Name und der Typ des Cue-Points festgelegt werden. Im zweiten Aufruf werden die Zeit und der Name mit den Parametern time und name der Methode festgelegt.

// Requires an FLVPlayback instance called my_FLVPlybk on Stage 
import fl.video.*; 
import fl.video.MetadataEvent; 
my_FLVPlybk.source = "http://www.helpexamples.com/flash/video/cuepoints.flv" 
var cuePt:Object = new Object(); //create cue point object 
cuePt.time = 2.02; 
cuePt.name = "ASpt1"; 
cuePt.type = "actionscript"; 
my_FLVPlybk.addASCuePoint(cuePt);//add AS cue point 
// add 2nd AS cue point using time and name parameters 
my_FLVPlybk.addASCuePoint(5, "ASpt2"); 

Weitere Informationen finden Sie im Abschnitt zur FLVPlayback.addASCuePoint()-Methode im ActionScript 3.0 Referenzhandbuch für Flash Professional .

Warten auf Cue-Point-Ereignisse

Durch das Ereignis cuePoint erhalten Sie in Ihrem ActionScript-Code die Kontrolle. Wenn im folgenden Beispiel Cue-Points eintreten, ruft der cuePoint -Listener eine Ereignisprozedur auf, die den Wert der Eigenschaft playheadTime sowie den Namen und den Typ des Cue-Points anzeigt. Verwenden Sie dieses Beispiel in Kombination mit dem Beispiel im vorigen Abschnitt, „Hinzufügen von ActionScript-Cue-Points“, um die Ergebnisse zu sehen.

my_FLVPlybk.addEventListener(MetadataEvent.CUE_POINT, cp_listener); 
function cp_listener(eventObject:MetadataEvent):void { 
        trace("Elapsed time in seconds: " + my_FLVPlybk.playheadTime); 
        trace("Cue point name is: " + eventObject.info.name); 
        trace("Cue point type is: " + eventObject.info.type); 
}

Weitere Informationen zum cuePoint -Ereignis finden Sie im Abschnitt zum FLVPlayback.cuePoint-Ereignis im ActionScript 3.0 Referenzhandbuch für Flash Professional .

Suchen von Cue-Points

Mithilfe von ActionScript können Sie nach beliebigen Cue-Points, nach dem Cue-Point, der einem bestimmten Zeitwert am nächsten ist, oder nach einem Cue-Point mit einem bestimmten Namen suchen.

Die Ereignisprozedur ready_listener() im folgenden Beispiel ruft die Methode findCuePoint() auf, um den Cue-Point ASpt1 zu suchen, und ruft dann die Methode findNearestCuePoint() auf, um den Navigations-Cue-Point zu finden, der dem Zeitwert des Cue-Points ASpt1 am nächsten ist:

import fl.video.FLVPlayback; 
import fl.video.CuePointType; 
import fl.video.VideoEvent; 
my_FLVPlybk.source = "http://www.helpexamples.com/flash/video/cuepoints.flv" 
var rtn_obj:Object; //create cue point object 
my_FLVPlybk.addASCuePoint(2.02, "ASpt1");//add AS cue point 
function ready_listener(eventObject:VideoEvent):void { 
    rtn_obj = my_FLVPlybk.findCuePoint("ASpt1", CuePointType.ACTIONSCRIPT); 
    traceit(rtn_obj); 
    rtn_obj = my_FLVPlybk.findNearestCuePoint(rtn_obj.time, CuePointType.NAVIGATION); 
    traceit(rtn_obj); 
} 
my_FLVPlybk.addEventListener(VideoEvent.READY, ready_listener); 
function traceit(cuePoint:Object):void { 
    trace("Cue point name is: " + cuePoint.name); 
    trace("Cue point time is: " + cuePoint.time); 
    trace("Cue point type is: " + cuePoint.type); 
}

Im folgenden Beispiel sucht die Ereignisprozedur ready_listener() den Cue-Point ASpt und ruft die Methode findNextCuePointWithName() auf, um den nächsten Cue-Point mit demselben Namen zu finden:

import fl.video.*; 
my_FLVPlybk.source = "http://www.helpexamples.com/flash/video/cuepoints.flv" 
var rtn_obj:Object; //create cue point object 
my_FLVPlybk.addASCuePoint(2.02, "ASpt");//add AS cue point 
my_FLVPlybk.addASCuePoint(3.4, "ASpt");//add 2nd Aspt 
my_FLVPlybk.addEventListener(VideoEvent.READY, ready_listener); 
function ready_listener(eventObject:VideoEvent):void { 
    rtn_obj = my_FLVPlybk.findCuePoint("ASpt", CuePointType.ACTIONSCRIPT); 
    traceit(rtn_obj); 
    rtn_obj = my_FLVPlybk.findNextCuePointWithName(rtn_obj); 
    traceit(rtn_obj); 
} 
function traceit(cuePoint:Object):void { 
    trace("Cue point name is: " + cuePoint.name); 
    trace("Cue point time is: " + cuePoint.time); 
    trace("Cue point type is: " + cuePoint.type); 
}

Weitere Informationen zum Suchen von Cue-Points finden Sie in den Abschnitten zu den Methoden FLVPlayback.findCuePoint(), FLVPlayback.findNearestCuePoint() und FLVPlayback.findNextCuePointWithName() im ActionScript 3.0 Referenzhandbuch für Flash Professional .

Suchen von Navigations-Cue-Points

Sie können einen Vor- oder Rücklauf zu einem Navigations-Cue-Point ausführen oder zum nächsten bzw. vorherigen Navigations-Cue-Point ab einem bestimmten Zeitpunkt. Im folgenden Beispiel wird die FLV-Datei „cuepoints.flv“ abgespielt und es wird ein Suchlauf zum Cue-Point bei 7.748 ausgeführt, wenn das Ereignis ready eintritt. Wenn das cuePoint -Ereignis eintritt, wird im Beispiel die Methode seekToPrevNavCuePoint() aufgerufen, um einen Suchlauf zum ersten Cue-Point auszuführen. Wenn dieses cuePoint -Ereignis eintritt, wird im Beispiel die Methode seekToNextNavCuePoint() aufgerufen, um einen Suchlauf zum letzten Cue-Point auszuführen, indem eventObject.info.time (dies ist der Zeitwert des aktuellen Cue-Points) 10 Sekunden hinzugefügt werden.

import fl.video.*; 
 
my_FLVPlybk.addEventListener(VideoEvent.READY, ready_listener); 
function ready_listener(eventObject:Object):void { 
    my_FLVPlybk.seekToNavCuePoint("point2"); 
} 
my_FLVPlybk.addEventListener(MetadataEvent.CUE_POINT, cp_listener); 
function cp_listener(eventObject:MetadataEvent):void { 
    trace(eventObject.info.time); 
    if(eventObject.info.time == 7.748) 
        my_FLVPlybk.seekToPrevNavCuePoint(eventObject.info.time - .005); 
    else 
        my_FLVPlybk.seekToNextNavCuePoint(eventObject.info.time + 10); 
} 
my_FLVPlybk.source = "http://helpexamples.com/flash/video/cuepoints.flv";

Weitere Informationen finden Sie in den Abschnitten zu den Methoden FLVPlayback.seekToNavCuePoint(), FLVPlayback.seekToNextNavCuePoint() und FLVPlayback.seekToPrevNavCuePoint() im ActionScript 3.0 Referenzhandbuch für Flash Professional .

Aktivieren und Deaktivieren von eingebetteten Cue-Points in einer FLV-Datei

Sie können in eine FLV-Datei eingebettete Cue-Points mithilfe der Methode setFLVCuePointEnabled() aktivieren oder deaktivieren. Deaktivierte Cue-Points lösen keine cuePoint -Ereignisse aus und werden von den Methoden seekToCuePoint() , seekToNextNavCuePoint() und seekToPrevNavCuePoint() nicht angesprochen. Sie können deaktivierte Cue-Points aber mit den Methoden findCuePoint() , findNearestCuePoint() und findNextCuePointWithName() suchen.

Mithilfe der Methode isFLVCuePointEnabled() können Sie testen, ob ein eingebetteter Cue-Point in einer FLV-Datei aktiviert ist oder nicht. Im folgenden Beispiel werden die eingebetteten Cue-Points point2 und point3 deaktiviert, wenn das Video zum Abspielen bereit ist. Wenn das erste cuePoint -Ereignis eintritt, testet die Ereignisprozedur, ob der Cue-Point point3 deaktiviert ist, und aktiviert ihn, falls dies der Fall ist.

import fl.video.*; 
my_FLVPlybk.source = "http://www.helpexamples.com/flash/video/cuepoints.flv"; 
my_FLVPlybk.addEventListener(VideoEvent.READY, ready_listener); 
function ready_listener(eventObject:VideoEvent):void { 
    my_FLVPlybk.setFLVCuePointEnabled(false, "point2"); 
    my_FLVPlybk.setFLVCuePointEnabled(false, "point3"); 
} 
my_FLVPlybk.addEventListener(MetadataEvent.CUE_POINT, cp_listener); 
function cp_listener(eventObject:MetadataEvent):void { 
        trace("Cue point time is: " + eventObject.info.time); 
        trace("Cue point name is: " + eventObject.info.name); 
        trace("Cue point type is: " + eventObject.info.type); 
        if (my_FLVPlybk.isFLVCuePointEnabled("point2") == false) { 
            my_FLVPlybk.setFLVCuePointEnabled(true, "point2"); 
        } 
}

Weitere Informationen finden Sie in den Abschnitten zu den Methoden FLVPlayback.isFLVCuePointEnabled() und FLVPlayback.setFLVCuePointEnabled() im ActionScript 3.0 Referenzhandbuch für Flash Professional .

Entfernen eines ActionScript-Cue-Point

Sie können ActionScript-Cue-Points mithilfe der Methode removeASCuePoint() entfernen. Im folgenden Beispiel wird der Cue-Point ASpt2 entfernt, wenn ASpt1 eintritt.

import fl.video.*; 
my_FLVPlybk.source = "http://www.helpexamples.com/flash/video/cuepoints.flv" 
my_FLVPlybk.addASCuePoint(2.02, "ASpt1");//add AS cue point 
my_FLVPlybk.addASCuePoint(3.4, "ASpt2");//add 2nd Aspt 
my_FLVPlybk.addEventListener(MetadataEvent.CUE_POINT, cp_listener); 
function cp_listener(eventObject:MetadataEvent):void { 
        trace("Cue point name is: " + eventObject.info.name); 
        if (eventObject.info.name == "ASpt1") { 
            my_FLVPlybk.removeASCuePoint("ASpt2");     
            trace("Removed cue point ASpt2"); 
        } 
}

Weitere Informationen finden Sie im FLVPlayback.removeASCuePoint()-Abschnitt im ActionScript 3.0 Referenzhandbuch für Flash Professional .