|
Ponto de sinalização é um ponto em que o player de vídeo despacha um evento
cuePoint
durante a reprodução de um arquivo de vídeo. Você pode adicionar pontos de sinalização a um arquivo FLV quando desejar que uma ação ocorra em outro elemento na página da Web. Talvez você deseje exibir texto ou um gráfico, por exemplo, ou sincronizar com uma animação Flash ou, ainda, afetar a reprodução do arquivo FLV pausando-o, buscando um ponto diferente no vídeo ou alterando para um arquivo FLV diferente. Os pontos de sinalização permitem receber controle no seu código do ActionScript para sincronizar pontos no arquivo FLV com outras ações na página da Web.
Existem três tipos de pontos de sinalização: navegação, evento e ActionScript. Os pontos de sinalização navegação e evento também são conhecidos como pontos de sinalização
incorporados
porque são incorporados no fluxo de arquivo FLV e no pacote de metadados do arquivo FLV.
O
ponto de sinalização de navegação
permite buscar um quadro específico no arquivo FLV, pois ele cria um quadro-chave no arquivo FLV o mais próximo possível do tempo especificado. O
quadro-chave
é um segmento de dados que ocorre entre os quadros de imagem no fluxo de arquivo FLV. Ao buscar um ponto de sinalização de navegação, o componente busca o quadro-chave e inicia o evento
cuePoint
.
O
ponto de sinalização de evento
permite sincronizar um ponto no tempo no arquivo FLV com um evento externo na página da Web. O evento
cuePoint
ocorre precisamente no tempo especificado. Você pode incorporar pontos de sinalização de navegação e de evento em um arquivo FLV usando o assistente de importação de vídeo ou o Flash Video Encoder. Para obter mais informações sobre o assistente de importação de vídeo e o Flash Video Encoder, consulte o Capitulo 16, "Trabalho com vídeo", em
Uso do Flash
.
O
ponto de sinalização do ActionScript
é um ponto de sinalização externo que pode ser adicionado por meio da caixa de diálogo Pontos de sinalização Flash Video do componente ou por meio do método
FLVPlayback.addASCuePoint()
. O componente armazena e rastreia os pontos de sinalização do ActionScript, com exceção do arquivo FLV, e, conseqüentemente, eles são menos precisos do que os pontos de sinalização incorporados. Os pontos de sinalização do ActionScript têm precisão de um décimo de segundo. Você pode aumentar a precisão dos pontos de sinalização do ActionScript reduzindo o valor da propriedade
playheadUpdateInterval
, pois o componente gera o evento
cuePoint
para pontos de sinalização do ActionScript quando o indicador de reprodução é atualizado. Para obter mais informações, consulte a propriedade Propriedade FLVPlayback.playheadUpdateInterval na
Referência do ActionScript 3.0
para Adobe Flash Platform
.
No ActionScript e nos metadados do arquivo FLV, o ponto de sinalização é representado como um objeto com as seguintes propriedades:
name
,
time
,
type
e
parameters
. A propriedade
name
é uma string que contém o nome atribuído do ponto de sinalização. A propriedade
time
é um número representando o tempo em horas, minutos, segundos e milésimos de segundo (HH:MM:SS.mmm) quando ocorre o ponto de sinalização. A propriedade
type
é uma string cujo valor é
"navigation"
,
"event"
ou
"actionscript"
, dependendo do tipo de ponto de sinalização criado. A propriedade
parameters
é uma matriz de nome e pares de valores especificados.
Quando o evento
cuePoint
ocorre, o objeto de ponto de sinalização fica disponível no objeto de evento por meio da propriedade
info
.
Use a caixa de diálogo Pontos de sinalização Flash Video
Abra a caixa de diálogo Pontos de sinalização Flash Video, clicando duas vezes na célula Valor, do parâmetro
cuePoints
, no Inspetor de componentes. A caixa de diálogo se parece com a figura a seguir:
A caixa de diálogo exibe pontos de sinalização incorporados e do ActionScript. Você pode usar essa caixa de diálogo para adicionar e excluir pontos de sinalização do ActionScript, bem como parâmetros de pontos de sinalização. Você também pode ativar ou desativar pontos de sinalização incorporados. No entanto, você não pode adicionar, alterar nem excluir pontos de sinalização incorporados.
Adicionar ponto de sinalização do ActionScript:
-
Clique duas vezes na célula Valor, do parâmetro
cuePoints
, no Inspetor de componentes, para abrir a caixa de diálogo Pontos de sinalização Flash.
-
Clique no sinal de adição (+) no canto superior esquerdo, acima da lista de pontos de sinalização, para adicionar uma entrada de ponto de sinalização do ActionScript.
-
Clique no texto Novo ponto de sinalização, na coluna Nome, e edite o texto para nomear o ponto de sinalização.
-
Clique no valor Tempo de 00:00:00:000 para editá-lo e atribuir um tempo para que o ponto de sinalização ocorra. Você pode especificar o tempo em horas, minutos, segundos e milésimos de segundos (HH:MM:SS.mmm).
Se houver vários pontos de sinalização. a caixa de diálogo move o novo ponto de sinalização para a respectiva posição cronológica na lista.
-
Para adicionar um parâmetro ao ponto de sinalização selecionado, clique no sinal de adição (+) acima da seção Parâmetros e insira valores nas colunas Nome e Valor. Repita essa etapa para cada parâmetro.
-
Para adicionar mais pontos de sinalização do ActionScript, repita as etapas de 2 a 5 para cada um.
-
Clique em OK para salvar as alterações.
Excluir um ponto de sinalização do ActionScript :
-
Clique duas vezes na célula Valor, do parâmetro
cuePoints
, no Inspetor de componentes, para abrir a caixa de diálogo Pontos de sinalização Flash.
-
Selecione o ponto de sinalização que deseja excluir.
-
Clique no sinal de subtração (-) do canto superior esquerdo, acima da lista de pontos de sinalização, para excluí-lo.
-
Repita as etapas 2 e 3 para cada ponto de sinalização que desejar excluir.
-
Clique em OK para salvar as alterações.
Para ativar ou desativar o ponto de sinalização do arquivo FLV incorporado:
-
Clique duas vezes na célula Valor, do parâmetro
cuePoints
, no Inspetor de componentes, para abrir a caixa de diálogo Pontos de sinalização Flash.
-
Selecione o ponto de sinalização que deseja ativar ou desativar.
-
Clique no, valor na coluna Tipo, para acionar o menu pop-up, ou clique na seta para baixo.
-
Clique no nome do tipo de ponto de sinalização (por exemplo, Evento ou Navegação) para ativá-lo. Clique em Desativado para desativá-lo.
-
Clique em OK para salvar as alterações.
Uso de pontos de sinalização com o ActionScript
Você pode usar o ActionScript para adicionar pontos de sinalização do ActionScript, monitorar o evento
cuePoint
, localizar pontos de sinalização de qualquer tipo ou de um tipo específico, buscar um ponto de sinalização de navegação, ativar ou desativar um ponto de sinalização, verificar se um ponto de sinalização está ativado e remover um ponto de sinalização.
Os exemplos nesta seção usam um arquivo FLV chamado cuepoints.flv, que contém os três seguintes pontos de sinalização:
|
Nome
|
Tempo
|
Tipo
|
|
ponto 1
|
00:00:00.418
|
Navegação
|
|
ponto 2
|
00:00:07.748
|
Navegação
|
|
ponto 3
|
00:00:16.020
|
Navegação
|
Adição de pontos de sinalização do ActionScript
Você pode adicionar pontos de sinalização do ActionScript a um arquivo FLV usando o método
addASCuePoint()
. O exemplo a seguir adiciona dois pontos de sinalização do ActionScript ao arquivo FLV quando ele está pronto para reprodução. Ele adiciona o primeiro ponto de sinalização usando um objeto de ponto de sinalização que especifica tempo, nome e tipo do ponto de sinalização nas respectivas propriedades. A segunda chamada especifica o tempo e o nome usando os parâmetros
time
e
name
do 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 obter mais informações, consulte a propriedade Método FLVPlayback.addASCuePoint() na
Referência do ActionScript 3.0
para Adobe Flash Platform
.
Monitoração de eventos cuePoint
O evento
cuePoint
permite receber controle no código do ActionScript quando ocorre um evento
cuePoint
. Quando ocorrem pontos de sinalização no exemplo seguinte, o ouvinte de
cuePoint
chama uma função do manipulador de eventos que exibe o valor da propriedade
playheadTime
e o nome e o tipo do ponto de sinalização. Use este exemplo juntamente com o exemplo da seção anterior, Adicionar pontos de sinalização do ActionScript, para ver os 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 obter mais informações sobre o evento
cuePoint
, consulte o evento Evento FLVPlayback.cuePoint na
Referência do ActionScript 3.0
para Adobe Flash Platform
.
Localizar pontos de sinalização
Com o uso do ActionScript, você pode localizar um ponto de sinalização de qualquer tipo, localizar o ponto de localização mais próximo de um tempo ou localizar o próximo ponto de sinalização com um nome específico.
O manipulador de eventos
ready_listener()
no exemplo a seguir chama o método
findCuePoint()
para localizar o ponto de sinalização
ASpt1
e, em seguida, chama o método
findNearestCuePoint()
para localizar o ponto de sinalização de navegação mais próximo do tempo do ponto de sinalização
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);
}
No exemplo a seguir, o manipulador de eventos
ready_listener()
localiza o ponto de sinalização
ASpt
e chama o método
findNextCuePointWithName()
para localizar o próximo ponto de sinalização com o mesmo nome:
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 obter mais informações sobre como localizar pontos de sinalização, consulte os métodos Métodos FLVPlayback.findCuePoint(), FLVPlayback.findNearestCuePoint() e FLVPlayback.findNextCuePointWithName() na
Referência do ActionScript 3.0
para Adobe Flash Platform
.
Busca de pontos de sinalização de navegação
Você pode buscar um ponto de sinalização de navegação, buscar o próximo ponto de sinalização de navegação de um tempo especificado e buscar o ponto de sinalização de navegação anterior em um tempo especificado. O exemplo a seguir reproduz o arquivo FLV cuepoints.flv e busca o ponto de sinalização em 7.748 quando o ocorre o evento
ready
. Quando ocorre o evento
cuePoint
, o exemplo chama o método
seekToPrevNavCuePoint()
para buscar o primeiro ponto de sinalização. Quando esse evento
cuePoint
ocorre, o exemplo chama o método
seekToNextNavCuePoint()
para buscar o último ponto de sinalização, adicionando 10 segundos a
eventObject.info.time
, que é o tempo do ponto de sinalização atual.
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 obter mais informações, consulte a propriedade Métodos FLVPlayback.seekToNavCuePoint(), FLVPlayback.seekToNextNavCuePoint() e FLVPlayback.seekToPrevNavCuePoint() na
Referência do ActionScript 3.0
para Adobe Flash Platform
.
Ativação e desativação de pontos de sinalização do arquivo FLV incorporado
Você pode ativar ou desativar pontos de sinalização do arquivo FLV incorporado usando o método
addASCuePoint()
. Os pontos de sinalização desativados não acionam eventos
cuePoint
e não funcionam com métodos
seekToCuePoint()
,
seekToNextNavCuePoint()
ou
seekToPrevNavCuePoint()
. No entanto, você pode encontrar pontos de sinalização desativados, com os métodos
findCuePoint()
,
findNearestCuePoint()
e
findNextCuePointWithName()
.
Você pode testar se um ponto de sinalização do arquivo FLV incorporado está ativado, usando o método
isFLVCuePointEnabled()
. O exemplo a seguir desativa os pontos de sinalização incorporados
ponto 2
e
ponto 3
quando o vídeo estiver pronto para reprodução. No entanto, quando o primeiro evento
cuePoint
ocorre, o manipulador de eventos testa para observar se o ponto de sinalização
ponto 3
está desativado e, caso esteja, ativa-o.
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 obter mais informações, consulte a propriedade Métodos FLVPlayback.isFLVCuePointEnabled() e FLVPlayback.setFLVCuePointEnabled() na
Referência do ActionScript 3.0
para Adobe Flash Platform
.
Remover um ponto de sinalização do ActionScript
Você pode remover um ponto de sinalização do ActionScript usando o método
removeASCuePoint()
. O exemplo a seguir remove o ponto de sinalização
ASpt2
quando ocorre o ponto de sinalização
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 obter mais informações, consulte FLVPlayback.removeASCuePoint() na
Referência do ActionScript 3.0
para Adobe Flash Platform
.
|
|
|