0

我有一个 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

}

4

2 回答 2

0

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

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

于 2012-03-30T13:40:44.897 回答
0

提示点可以通过两种方式添加到视频中:1) 编码到实际视频中 2) 通过动作脚本添加

我没有任何指向相应文档的链接,但我之前已经处理过这个问题。我读到的东西说,通过动作脚本添加提示点不如将它们编码到视频中那样准确。...并且您的代码表明这是您添加它们的方式...

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

于 2012-03-30T18:28:48.613 回答