Flash a3 - 在提示点停止

时间:2012-03-30 13:14:58

标签: actionscript-3 streaming flv points cue

我有一个flv vid并动态设置提示点

vid.addASCuePoint(1, "cuePoint1");

但它并不总是停在同一个地方。我怎么能更准确?我认为这是由于缓冲和其他一些因素造成的?

import fl.video.*;
//etc etc 
vid.addEventListener(fl.video.VideoEvent.READY, flvPlayback_ready);
vid.addEventListener(MetadataEvent.CUE_POINT, flvPlayback_cuePoint);

function flvPlayback_ready(evt:fl.video.VideoEvent):void {
vid.addASCuePoint(1, "cuePoint1");
vid.play();
}


function flvPlayback_cuePoint(evt:MetadataEvent):void {
    vid.pause();
    trace("CUE POINT!!!");
    trace("\t", "name:", evt.info.name); // name: cuePoint1
   trace("\t", "time:", evt.info.time); // time: 1
   trace("\t", "type:", evt.info.type); // type: actionscript

}

2 个答案:

答案 0 :(得分:0)

这可能是由于flv编码的关键帧数量(我认为使用MediaEncoder进行编码时,默认情况下,每30帧数为1)。

尝试重新编码flv并将Key Frame Distance设置为更小的值(甚至使用Media Encoder嵌入关键帧,而不是通过ActionScript添加它)。

答案 1 :(得分:0)

可以通过两种方式将提示添加到视频中: 1)编码到实际视频中 2)通过actionscript添加

我没有任何相关文档的链接,但我之前已经处理过这个问题。我读过的东西说通过actionscript添加提示点不会像在视频上编码那样准确。 ...并且您的代码表明这是您添加它们的方式......

我希望我有更好的消息,但我知道要获得更高精度的唯一方法是在编码期间添加关键点。