flash as3 netStream видео. Как пропустить 3 секунды вперед/назад при воспроизведении видео?

У меня есть NetStream, подключенный к управлению видео во флеш-ролике. Я не могу понять, как прыгать вперед или назад.

var ns:NetStream = new NetStream(nc); 
ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); 
ns.play("Video.flv"); 
vid.attachNetStream(ns);

мне нужно что-то вроде

btnSkip.addEventListener(MouseEvent.CLICK, playClicked);
function playClicked(e:MouseEvent):void {
ns.pause();
//ns.step(1000)
//ns.seek(1);
ns.resume();
}

ns.step() - не работает, и я не знаю, почему. ns.seek - работает нормально, но я не знаю, где находится позиция, нет ни ns.position, ни свойств ns.fps, чтобы добавить ns.seek(ns.position+(ns.fps*3)) для пропуска 3 секунд вперед.


person el Dude    schedule 16.08.2012    source источник


Ответы (2)


На самом деле это довольно просто. Используйте метод seek в вашем netStream. Чтобы получить позицию, используйте метод времени, а затем добавьте необходимое смещение.

На 3 секунды вперед:

ns.seek(ns.time + 3);

На 3 секунды назад:

ns.seek(ns.time - 3);
person Future2020    schedule 16.08.2012
comment
Спасибо, ребята. Это было мое неправильное понимание метода seek() =)) - person el Dude; 17.08.2012

Эта статья может помочь вам немного больше: Netstream и step() или seek()?.

Что вы пытаетесь сыграть? Если это просто статическое видео, вы можете использовать обычные видеообъекты, тогда вы сможете использовать свойство playheadTime (которое, кстати, может быть не очень точным - в зависимости от количества ключевых кадров).

Удачи!

person Chris Beemster    schedule 16.08.2012