Un punto de referencia es un punto en el que el reproductor de vídeo distribuye un evento
cuePoint
mientras se reproduce un archivo de vídeo. Se pueden añadir puntos de referencia a un archivo FLV cuando se desee interactuar con otro elemento de la página Web. Quizá se desee mostrar texto o un gráfico, por ejemplo, o sincronizar con una animación de Flash, o pausar la reproducción del archivo FLV, buscar otro punto distinto del vídeo o cambiar a otro archivo FLV. Los puntos de referencia permiten recibir el control en el código ActionScript para sincronizar dichos puntos del archivo FLV con otras acciones de la página Web.
Hay tres tipos de puntos de referencia: navegación, eventos y ActionScript. Los puntos de referencia de navegación y eventos se denominan también puntos de referencia
incorporados
porque se incorporan en el flujo de archivos FLV y en el paquete de metadatos del archivo FLV.
Un
punto de referencia de navegación
permite buscar un determinado fotograma en el archivo FLV, ya que crea un fotograma clave en el archivo FLV, lo más cerca posible al tiempo especificado. Un
fotograma clave
es un segmento de datos que se produce entre los fotogramas de imagen del flujo del archivo FLV. Cuando se busca un punto de referencia de navegación, el componente busca el fotograma clave e inicia el evento
cuePoint
.
Un
punto de referencia de evento
permite sincronizar un instante específico del archivo FLV con un evento externo de la página Web. El evento
cuePoint
se produce precisamente en el instante especificado. Se pueden incorporar puntos de referencia de navegación y de evento en un archivo FLV mediante el asistente de importación de vídeo o Flash Video Encoder. Para más información sobre el asistente de importación de vídeo y Flash Video Encoder, consulte el Capítulo 16, "Trabajo con vídeo", en
Utilización de Flash
.
Un
punto de referencia de ActionScript
es un punto de referencia externo que puede añadirse a través del cuadro de diálogo Puntos de referencia de Flash Video del componente o a través del método
FLVPlayback.addASCuePoint()
. El componente almacena y rastrea los puntos de referencia de ActionScript independientemente del archivo FLV, por lo que son menos precisos que los puntos de referencia incorporados. La precisión de los puntos de referencia de ActionScript es de una décima de segundo. Para aumentar esta precisión, es necesario reducir el valor de la propiedad
playheadUpdateInterval
, ya que el componente genera el evento
cuePoint
para los puntos de referencia de ActionScript cuando se actualiza la cabeza lectora. Para obtener más información, consulte la propiedad FLVPlayback.playheadUpdateInterval en la
Referencia de ActionScript 3.0
para Flash Professional
.
En ActionScript y en los metadatos del archivo FLV, un punto de referencia se representa como un objeto con las siguientes propiedades:
name
,
time
,
type
y
parameters
La propiedad
name
es una cadena que contiene el nombre asignado del punto de referencia. La propiedad
time
es un número que representa el tiempo en horas, minutos, segundos y milisegundos (HH:MM:SS.mmm) cuando se produce el punto de referencia. La propiedad
type
es una cadena cuyo valor es
"navigation"
,
"event"
o
"actionscript"
, en función del tipo de punto de referencia que se haya creado. La propiedad
parameters
es un conjunto de los pares nombre-valor especificados.
Cuando se produce un evento
cuePoint
, el punto de referencia está disponible en el objeto de evento a través de la propiedad
info
.
Uso del cuadro de diálogo Puntos de referencia de Flash Video
Para abrir el cuadro de diálogo Puntos de referencia de Flash Video, haga doble clic en la celda Valor del parámetro
cuePoints
del inspector de componentes. El cuadro de diálogo tiene el siguiente aspecto:
El cuadro de diálogo muestra los puntos de referencia de ActionScript y los incorporados. Se puede utilizar este cuadro de diálogo para añadir y eliminar puntos de referencia de ActionScript y parámetros de puntos de referencia. También se pueden activar o desactivar los puntos de referencia incorporados. Sin embargo, no puede añadir, cambiar ni eliminar cuepoints incorporados.
Añadir un punto de referencia de ActionScript:
-
Haga doble clic en la celda Valor del parámetro
cuePoints
en el inspector de componentes para abrir el cuadro de diálogo Puntos de referencia de Flash Video.
-
Haga clic en el signo más (+) situado en la esquina superior izquierda, por encima de la lista de puntos de referencia, para añadir una entrada de punto de referencia de ActionScript predeterminada.
-
Haga clic en el texto Nuevo cuepoint de la columna Nombre y edite el texto para asignar un nombre al cuepoint.
-
Haga clic en el valor de tiempo de 00:00:00:000 para editarlo y asigne un tiempo para el punto de referencia. Se puede especificar el tiempo en horas, minutos, segundos y milisegundos (HH:MM:SS.mmm).
Si hay varios puntos de referencia, el cuadro de diálogo mueve el nuevo punto de referencia a su posición cronológica en la lista.
-
Para añadir un parámetro para el punto de referencia seleccionado, haga clic en el signo más (+) situado encima de la sección Parámetros e introduzca valores en las columnas Nombre y Valor. Repita este paso para cada parámetro.
-
Para añadir más puntos de referencia de ActionScript, repita los pasos 2 a 5 para cada uno.
-
Haga clic en Aceptar para guardar los cambios.
Eliminar un punto de referencia de ActionScript:
-
Haga doble clic en la celda Valor del parámetro
cuePoints
en el inspector de componentes para abrir el cuadro de diálogo Puntos de referencia de Flash Video.
-
Seleccione los puntos de referencia que desea eliminar.
-
Haga clic en el signo menos (-) situado en la esquina superior izquierda, por encima de la lista de puntos de referencia, para eliminarlo.
-
Repita los pasos 2 y 3 para cada punto de referencia que desee eliminar.
-
Haga clic en Aceptar para guardar los cambios.
Para activar o desactivar un punto de referencia de archivo FLV incorporado:
-
Haga doble clic en la celda Valor del parámetro
cuePoints
en el inspector de componentes para abrir el cuadro de diálogo Puntos de referencia de Flash Video.
-
Seleccione el punto de referencia que desea activar o desactivar.
-
Haga clic en el valor de la columna Tipo para activar el menú emergente o haga clic en la flecha abajo.
-
Haga clic en el nombre del tipo de punto de referencia (por ejemplo, Event o Navigation) para activarlo. Haga clic en Disabled para desactivarlo.
-
Haga clic en Aceptar para guardar los cambios.
Uso de los puntos de referencia con ActionScript
Se puede utilizar ActionScript para añadir puntos de referencia de ActionScript, detectar eventos
cuePoint
, buscar puntos de referencia de cualquier tipo o de un tipo especificado, buscar un punto de referencia de navegación, activar o desactivar un punto de referencia, comprobar si un punto de referencia está activado y quitar un punto de referencia.
En los ejemplos de esta sección, se utiliza un archivo FLV denominado cuepoints.flv, que contiene los tres puntos de referencia siguientes:
Nombre
|
Tiempo
|
Tipo
|
point1
|
00:00:00.418
|
Navigation
|
point2
|
00:00:07.748
|
Navigation
|
point3
|
00:00:16.020
|
Navigation
|
Añadir puntos de referencia de ActionScript
Es posible añadir puntos de referencia de ActionScript a un archivo FLV mediante el método
addASCuePoint()
. En el siguiente ejemplo, se añaden dos puntos de referencia de ActionScript al archivo FLV cuando está listo para se. Se añade el primer punto de referencia mediante un objeto de punto de referencia, que especifica el tiempo, el nombre y el tipo del punto de referencia en sus propiedades. En la segunda llamada, se especifica el tiempo y el nombre mediante los parámetros
time
y
name
del método.
// 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");
Para obtener más información, consulte el método FLVPlayback.addASCuePoint() en la
Referencia de ActionScript 3.0
para Flash Professional
.
Detección de eventos cuePoint
El evento
cuePoint
permite recibir el control en el código ActionScript cuando se produce un evento
cuePoint
. Cuando se producen puntos de referencia en el siguiente ejemplo, el detector de
cuePoint
llama a una función de controlador de eventos que muestra el valor de la propiedad
playheadTime
y el nombre y el tipo del punto de referencia. Utilice este ejemplo junto con el ejemplo en la sección anterior, Añadir puntos de referencia de ActionScript, para ver los resultados.
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);
}
Para obtener más información sobre el evento
cuePoint
, consulte el evento FLVPlayback.cuePoint en la
Referencia de ActionScript 3.0
para Flash Professional
.
Localización de puntos de referencia
El código ActionScript permite encontrar un punto de referencia de cualquier tipo, el punto de referencia más cercano en el tiempo o el siguiente punto de referencia con un nombre específico.
El controlador de eventos
ready_listener()
del siguiente ejemplo llama al método
findCuePoint()
para buscar el punto de referencia
ASpt1
y, a continuación, llama al método
findNearestCuePoint()
para buscar el punto de referencia de navegación más cercano en el tiempo al punto de referencia
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);
}
En el siguiente ejemplo, el controlador de eventos
ready_listener()
busca el punto de referencia
ASpt
y llama al método
findNextCuePointWithName()
para buscar el siguiente punto de referencia con el mismo nombre:
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);
}
Para obtener más información sobre cómo encontrar puntos de referencia, consulte los métodos FLVPlayback.findCuePoint(), FLVPlayback.findNearestCuePoint() y FLVPlayback.findNextCuePointWithName() en la
Referencia de ActionScript 3.0
para Flash Professional
.
Búsqueda de puntos de referencia de navegación
Se puede buscar un punto de referencia de navegación y buscar el anterior y siguiente punto de referencia de navegación a partir de un tiempo especificado. En el siguiente ejemplo se reproduce el archivo FLV cuepoints.flv y se busca el punto de referencia correspondiente a 7.748 cuando se produce el evento
ready.
Cuando se produce el evento
cuePoint
, el ejemplo llama al método
seekToPrevNavCuePoint()
para buscar el primer punto de referencia. Cuando se produce dicho evento
cuePoint
, el ejemplo llama al método
seekToNextNavCuePoint()
para buscar el último punto de referencia añadiendo 10 segundos a
eventObject.info.time
, que es el tiempo del punto de referencia actual.
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";
Para obtener más información, consulte los métodos FLVPlayback.seekToNavCuePoint(), FLVPlayback.seekToNextNavCuePoint() y FLVPlayback.seekToPrevNavCuePoint() de la
Referencia de ActionScript 3.0
para Flash Professional
.
Activación y desactivación de puntos de referencia de archivo FLV incorporados
Es posible activar y desactivar puntos de referencia de archivo FLV incorporados, mediante el método
setFLVCuePointEnabled()
. Los puntos de referencia desactivados no activan eventos
cuePoint
ni funcionan con los métodos
seekToCuePoint()
,
seekToNextNavCuePoint()
o
seekToPrevNavCuePoint()
. Sin embargo, puede buscar los puntos de referencia desactivados mediante los métodos
findCuePoint()
,
findNearestCuePoint()
y
findNextCuePointWithName()
.
Se puede probar si un punto de referencia de archivo FLV incorporado está activado, mediante el método
isFLVCuePointEnabled()
. En el siguiente ejemplo, se desactivan los puntos de referencia incorporados
point2
y
point3
cuando el vídeo está listo para se. Sin embargo, cuando se produce el primer evento
cuePoint
, el controlador de eventos prueba si el punto de referencia
point3
está desactivado y, si lo está, lo activa.
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");
}
}
Para obtener más información, consulte los métodos FLVPlayback.isFLVCuePointEnabled() y FLVPlayback.setFLVCuePointEnabled() de la
Referencia de ActionScript 3.0
para Flash Professional
.
Eliminación de un punto de referencia de ActionScript
Se puede quitar un punto de referencia de ActionScript mediante el método
removeASCuePoint()
. En el siguiente ejemplo, se quita el punto de referencia
ASpt2
cuando se produce el punto de referencia
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");
}
}
Para obtener más información, consulte FLVPlayback.removeASCuePoint() en la
Referencia de ActionScript 3.0
para Flash Professional
.
|
|
|