|
Punkt sygnalizacji to punkt, w którym odtwarzacz wideo wywołuje zdarzenie
cuePoint
podczas odtwarzania pliku wideo. Punkty sygnalizacji można dodawać do pliku FLV, gdy wymagane jest wykonanie operacji dla innego elementu na stronie WWW. Wymagane może być na przykład wyświetlenie tekstu lub grafiki, zsynchronizowanie z animacją Flash, wstrzymanie pliku FLV, wyszukanie innego punktu w wideo albo przełączenie na inny plik FLV. Punkty sygnalizacji umożliwiają uzyskanie kontroli w kodzie ActionScript w celu synchronizowania punktów w pliku FLV z innymi operacjami na stronie WWW.
Istnieją trzy typy punktów sygnalizacji: nawigacja, zdarzenia i ActionScript. Punkty sygnalizacji typu nawigacja i zdarzenie są również określane jako
osadzone
punkty sygnalizacji, ponieważ są osadzone w strumieniu pliku FLV w pakiecie metadanych pliku FLV.
Punkt sygnalizacji typu nawigacja
umożliwia wyszukiwanie odpowiednich klatek w pliku FLV, ponieważ punkt tworzy klatkę kluczową w pliku FLV tak blisko określonego czasu, jak to możliwe.
Klatka kluczowa
jest segmentem danych, jaki występuje między klatkami obrazu w strumieniu pliku FLV. Podczas wyszukiwania punktu sygnalizacji typu nawigacja składnik wyszukuje klatkę kluczową i uruchamia zdarzenie
cuePoint
.
Punkt sygnalizacji typu zdarzenie
umożliwia zsynchronizowanie punktu w czasie w pliku FLV z zewnętrznym zdarzeniem na stronie WWW. Do zdarzenia
cuePoint
dochodzi dokładnie w określonym czasie. Punkty sygnalizacyjne typu nawigacja i zdarzenie można osadzać w plikach FLV za pomocą kreatora Import wideo lub za pomocą programu Flash Video Encoder. Więcej informacji na temat kreatora Import wideo i programu Flash Video Encoder zawiera rozdział 16, „Wideo”, w podręczniku
Korzystanie z programu Flash
.
Punkt sygnalizacji ActionScript
jest zewnętrznym punktem sygnalizacji, który można dodawać za pośrednictwem okna dialogowego punktów sygnalizacji wideo (w programie Flash) lub za pomocą metody
FLVPlayback.addASCuePoint()
. Składnik zapisuje i śledzi punkty sygnalizacji ActionScript poza plikiem FLV i w konsekwencji są one mniej dokładne niż osadzone punkty sygnalizacji. Punkty sygnalizacji ActionScript zachowują dokładność do jednej dziesiątej sekundy. W celu zwiększenia dokładności punktów sygnalizacji ActionScript należy zmniejszyć wartość właściwości
playheadUpdateInterval
, ponieważ składnik generuje zdarzenie
cuePoint
dla punktów sygnalizacji ActionScript, gdy dojdzie do aktualizacji stanu głowicy odtwarzania. Więcej informacji zawiera opis właściwości FLVPlayback.playheadUpdateInterval w
Skorowidzu języka ActionScript 3.0
dla programu Flash Professional
.
W języku ActionScript oraz w metadanych pliku FLV punkt sygnalizacji jest reprezentowany jako obiekt z następującymi właściwościami:
name
,
time
,
type
i
parameters
. Właściwość
name
jest ciągiem znaków, który zawiera nazwę przypisaną do punktu sygnalizacji. Właściwość
time
jest liczbą reprezentującą czas wystąpienia punkty sygnalizacji w godzinach, minutach, sekundach i milisekundach (GG:MM:SS.mmm). Właściwość
type
jest ciągiem znaków, którego wartość to
"navigation"
,
"event"
lub
"actionscript"
— w zależności od typu utworzonego punktu sygnalizacji. Właściwość
parameters
jest tablicą określonych par nazwa/wartość.
Gdy dojdzie do zdarzenia
cuePoint
, obiekt punktu sygnalizacji staje się dostępny w obiekcie zdarzenia za pośrednictwem właściwości
info
.
Korzystanie z okna dialogowego Punkty kontrolne Flash Video
Otwórz okno dialogowe Punkty kontrolne Flash Video, klikając dwukrotnie komórkę Wartość parametru
cuePoints
w inspektorze właściwości. Okno dialogowe przypomina okno przedstawione poniżej:
W tym oknie dialogowym widoczne są osadzone punkty sygnalizacji i punkty sygnalizacji ActionScript. Z tego okna dialogowego można korzystać w celu dodawania i usuwania punktów sygnalizacji ActionScript, a także parametrów punktów sygnalizacji. W tym oknie można również włączać i wyłączać osadzone punkty sygnalizacji. Osadzonych punktów sygnalizacji nie można jednak dodawać, zmieniać ani usuwać.
Dodawanie punktu sygnalizacji ActionScript:
-
Kliknij dwukrotnie komórkę wartości parametru
cuePoints
w Inspektorze składników, aby otworzyć okno dialogowe punktów sygnalizacji Flash.
-
Kliknij znak plus (+) w lewym górnym rogu, powyżej listy punktów sygnalizacji, aby dodać domyślną pozycję punktu sygnalizacji ActionScript.
-
Kliknij napis Nowy punkt sygnalizacji w kolumnie Nazwa, a następnie zmodyfikuj napis, aby nazwać punkt sygnalizacji.
-
Kliknij wartość Czas 00:00:00:000, aby zmodyfikować ją i przypisać czas wystąpienia punktu sygnalizacji. Czas można określić w godzinach, minutach, sekundach i milisekundach (GG:MM:SS.mmm).
Jeśli istnieje wiele punktów sygnalizacji, nowy punkt zostanie przesunięty w oknie dialogowym zgodnie z chronologiczną pozycją na liście.
-
Aby dodać parametr dla wybranego punktu sygnalizacji, kliknij znak plus (+) powyżej sekcji Parametry, a następnie wprowadź wartości do kolumn Nazwa i Wartość. Powtórz tę czynność dla każdego parametru.
-
Aby dodać więcej punktów sygnalizacji ActionScript, powtórz dla każdego z nich czynności od 2 do 5.
-
Kliknij przycisk OK, aby zapisać zmiany.
Usuwanie punktu sygnalizacji ActionScript:
-
Kliknij dwukrotnie komórkę wartości parametru
cuePoints
w Inspektorze składników, aby otworzyć okno dialogowe punktów sygnalizacji Flash.
-
Wybierz punkt sygnalizacji, który chcesz usunąć.
-
Kliknij znak minus (-) w lewym górnym rogu, powyżej listy punktów sygnalizacji, aby usunąć punkt.
-
Powtórz kroki 2 i 3 dla każdego punktu sygnalizacji, który chcesz usunąć.
-
Kliknij przycisk OK, aby zapisać zmiany.
Aby włączyć lub wyłączyć punkt sygnalizacji w osadzonym pliku FLV:
-
Kliknij dwukrotnie komórkę wartości parametru
cuePoints
w Inspektorze składników, aby otworzyć okno dialogowe punktów sygnalizacji Flash.
-
Wybierz punkt sygnalizacji, który chcesz włączyć lub wyłączyć.
-
Kliknij wartość w kolumnie Typ, aby wywołać menu podręczne, lub kliknij strzałkę w dół.
-
Kliknij nazwę typu punktu sygnalizacji (np. Zdarzenie lub Nawigacja), aby go włączyć. Kliknij przycisk Wyłącz, aby wyłączyć
-
Kliknij przycisk OK, aby zapisać zmiany.
Korzystanie z punktów sygnalizacji z ActionScript
Język ActionScript może służyć do dodawania punktów sygnalizacji ActionScript; nasłuchiwania zdarzeń
cuePoint
; wyszukiwania punktów sygnalizacji dowolnego lub określonego typu; wyszukiwania punktów sygnalizacji typu nawigacja; włączania i wyłączania punktów sygnalizacji; sprawdzania, czy punkt sygnalizacji jest włączony oraz do usuwania punktów sygnalizacji.
Przykłady w tej sekcji przedstawiają używanie pliku FLV o nazwie cuepoints.flv, który zawiera następujące trzy punkty sygnalizacji:
|
Nazwa
|
Godzina
|
Typ
|
|
point1
|
00:00:00.418
|
Nawigacja
|
|
point2
|
00:00:07.748
|
Nawigacja
|
|
point3
|
00:00:16.020
|
Nawigacja
|
Dodawanie punktów sygnalizacji ActionScript
Punkty sygnalizacji ActionScript można dodawać do pliku FLV za pomocą metody
addASCuePoint()
. W poniższym przykładzie przedstawiono dodawanie dwóch punktów sygnalizacji ActionScript do pliku FLV gotowego do odtworzenia. Poniższy przykład dodaje obiekt punktu sygnalizacji, który określa godzinę, nazwę i typ punktu sygnalizacji w jego właściwościach. Drugie wywołanie określa czas i nazwę za pomocą parametrów
time
i
name
metody.
// 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");
Więcej informacji zawiera opis metody FLVPlayback.addASCuePoint() w
Skorowidzu języka ActionScript 3.0
dla programu Flash Professional
.
Nasłuchiwanie zdarzeń cuePoint
Zdarzenie
cuePoint
umożliwia kontrolowanie (za pośrednictwem kodu ActionScript) czasu wystąpienia zdarzenia
cuePoint
. Gdy w poniższym przykładzie wystąpią punkty sygnalizacji, detektor zdarzeń
cuePoint
wywoła funkcję obsługi zdarzeń, która wyświetli wartość właściwości
playheadTime
, a także nazwę i typ punktu sygnalizacji. W celu wyświetlenia rezultatów należy użyć tego przykładu w połączeniu z przykładem z poprzedniej sekcji — Dodawanie punktów sygnalizacji ActionScript.
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);
}
Więcej informacji na temat zdarzenia
cuePoint
zawiera zdarzenie FLVPlayback.cuePoint w
Skorowidzu języka ActionScript 3.0
dla programu Flash Professional
.
Wyszukiwanie punktów sygnalizacji
Za pomocą języka ActionScript można znaleźć punkt sygnalizacji dowolnego typu, znaleźć punkt sygnalizacji najbliżej punktu czasowego lub znaleźć następny punkt sygnalizacji o określonej nazwie.
Moduł obsługi zdarzeń
ready_listener()
w poniższym przykładzie wywołuje metodę
findCuePoint()
w celu znalezienia punktu sygnalizacji
ASpt1
, a następnie wywołuje metodę
findNearestCuePoint()
w celu znalezienia punktu sygnalizacji typu Nawigacja, który znajduje się najbliżej czasu wystąpienia punktu sygnalizacji
ASpt1
:
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);
}
W poniższym przykładzie moduł obsługi zdarzeń
ready_listener()
wyszukuje punkt sygnalizacji
ASpt
i wywołuje metodę
findNextCuePointWithName()
w celu znalezienia następnego punktu sygnalizacji o takiej samej nazwie:
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);
}
Więcej informacji na temat wyszukiwania punktów sygnalizacji zawiera opis metod FLVPlayback.findCuePoint(), FLVPlayback.findNearestCuePoint() i FLVPlayback.findNextCuePointWithName() w
Skorowidzu języka ActionScript 3.0
dla programu Flash Professional
.
Wyszukiwanie punktów sygnalizacji typu nawigacja
Istnieje możliwość wyszukania punktu sygnalizacji typu nawigacja, wyszukiwania kolejnego punktu sygnalizacji od określonego czasu, a także wyszukiwania poprzedniego punktu sygnalizacji typu nawigacja (od określonego czasu). Poniższy przykład prezentuje odtwarzanie pliku FLV cuepoints.flv, a ponadto wyszukuje punkt sygnalizacji po upływie 7.748 sekundy od wystąpienia zdarzenia
ready
. Gdy wystąpi zdarzenie
cuePoint
w przykładzie wywoływana jest metoda
seekToPrevNavCuePoint()
w celu znalezienia pierwszego punktu sygnalizacji. Gdy wystąpi to zdarzenie
cuePoint
, w przykładzie wywoływana jest metoda
seekToNextNavCuePoint()
w celu znalezienia ostatniego punktu sygnalizacji poprzez dodanie 10 sekund do wartości
eventObject.info.time
, która jest czasem bieżącego punktu sygnalizacji.
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";
Więcej informacji zawiera opis metod FLVPlayback.seekToNavCuePoint(), FLVPlayback.seekToNextNavCuePoint() i FLVPlayback.seekToPrevNavCuePoint() w
Skorowidzu języka ActionScript 3.0
dla programu Flash Professional
.
Włączanie i wyłączanie punktów sygnalizacji w osadzonym pliku FLV
Do włączania i wyłączania punktów sygnalizacji w osadzonym pliku FLV służy metoda
setFLVCuePointEnabled()
. Wyłączone punkty sygnalizacji nie wywołują zdarzeń
cuePoint
i nie działają z metodami
seekToCuePoint()
,
seekToNextNavCuePoint()
oraz
seekToPrevNavCuePoint()
. Wyłączone punkty sygnalizacji można wyszukiwać za pomocą metod
findCuePoint()
,
findNearestCuePoint()
i
findNextCuePointWithName()
.
Aby sprawdzić, czy punkt sygnalizacji w osadzonym pliku FLV jest włączony, należy użyć metody
isFLVCuePointEnabled()
. W poniższym przykładzie przedstawiono wyłączanie punktów sygnalizacji
point2
i
point3
, gdy plik wideo jest gotowy do odtwarzania. Po wystąpieniu pierwszego zdarzenia
cuePoint
moduł obsługi zdarzeń sprawdza, czy punkt sygnalizacji
point3
jest wyłączony. Jeśli jest wyłączony, włącza go.
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");
}
}
Więcej informacji zawiera opis metod FLVPlayback.isFLVCuePointEnabled() i FLVPlayback.setFLVCuePointEnabled() w
Skorowidzu języka ActionScript 3.0
dla programu Flash Professional
.
Usuwanie punktu sygnalizacji ActionScript
Punkt sygnalizacji ActionScript można usunąć za pomocą metody
removeASCuePoint()
. W poniższym przykładzie przedstawiono usuwanie punktu sygnalizacji
ASpt2
, gdy wystąpi punkt sygnalizacji
ASpt1
:
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");
}
}
Więcej informacji zawiera opis metody FLVPlayback.removeASCuePoint() w
Skorowidzu języka ActionScript 3.0
dla programu Flash Professional
.
|
|
|