|
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:
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:
-
Doppelklicken Sie im Komponenten-Inspektor auf die Zelle „Wert“ des Parameters
cuePoints
, um das Dialogfeld „Flash Video Cue-Points“ zu öffnen.
-
Klicken Sie oben links im Dialogfeld auf das Pluszeichen (+), um einen Standardeintrag für einen ActionScript-Cue-Point hinzuzufügen.
-
Klicken Sie in der Spalte „Name“ auf den Text „Neuer Cue-Point“ und geben Sie einen Namen für den Cue-Point ein.
-
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.
-
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.
-
Wenn Sie weitere ActionScript-Cue-Points hinzufügen möchten, wiederholen Sie jeweils die Schritte 2 bis 5.
-
Klicken Sie auf „OK“, um die Änderungen zu speichern.
Löschen eines ActionScript-Cue-Point:
-
Doppelklicken Sie im Komponenten-Inspektor auf die Zelle „Wert“ des Parameters
cuePoints
, um das Dialogfeld „Flash Video Cue-Points“ zu öffnen.
-
Wählen Sie den zu löschenden Cue-Point aus.
-
Klicken Sie oben links über der Liste der Cue-Points auf das Minuszeichen (-), um den Cue-Point zu löschen.
-
Wiederholen Sie die Schritte 2 und 3 für alle Cue-Points, die Sie löschen möchten.
-
Klicken Sie auf „OK“, um die Änderungen zu speichern.
Aktivieren oder Deaktivieren eines eingebetteten Cue-Point in einer FLV-Datei:
-
Doppelklicken Sie im Komponenten-Inspektor auf die Zelle „Wert“ des Parameters
cuePoints
, um das Dialogfeld „Flash Video Cue-Points“ zu öffnen.
-
Wählen Sie den Cue-Point aus, den Sie aktivieren oder deaktivieren möchten.
-
Klicken Sie auf den Wert in der Spalte „Typ“, um das Popupmenü zu öffnen, oder klicken Sie auf den Pfeil nach unten.
-
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.
-
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
.
|
|
|