PDA

Просмотр полной версии : Как отследить окончание Видео.


Stas52
19.01.2009, 14:09
Господа, программисты!
У меня такая задача - Проиграть видео и после этого перейти на 2-й кадр. Я нашел код, который отслеживает окончание проигрывания. Но я никак не могу связать его с FLVPlayback, который находится у меня на сцене. т.е звук есть, а картинки нету. Что я делаю не так?

var flv_connect:NetConnection = new NetConnection();
flv_connect.connect(null);
var motionStream:NetStream = new NetStream(flv_connect);

motionStream.play("video.flv");

VPlayer.attachVideo(motionStream);
VPlayer.skin = 'SteelExternalAll.swf';

var duration:Number;
var checkStatus:Number;
motionStream.onMetaData = function(meta:Object):Void {
duration = meta.duration;
}

checkStatus = setInterval(this, "CheckPlayStatus", 250);

function CheckPlayStatus() {
if(motionStream.time >= duration){
clearInteval(checkStatus);
gotoAndPlay(2);
}
}

zzz_dmg
19.01.2009, 14:33
я в свое время решила так эту задачу

_root.FLVPlayback.autoRewind = true;
var listenerObject:Object = new Object();
listenerObject.rewind = function(eventObject:Object) {
gotoAndStop(2);
}
_root.FLVPlayback.addEventListener("rewind", listenerObject);

Stas52
19.01.2009, 14:42
Не получается. Если я делаю вот так, то перепрыгивание на второй кадр происходит при перемотке вручную видеоролика.

_root.FLVPlayback.autoRewind = false;
FLVPlayback.contentPath = "video.flv";
FLVPlayback.play();
var listenerObject:Object = new Object();

listenerObject.rewind = function(eventObject:Object) {
gotoAndStop(2);
}

_root.FLVPlayback.addEventListener("rewind", listenerObject);

zzz_dmg
19.01.2009, 14:46
поставьте
_root.FLVPlayback.autoRewind = true;

у меня все получается

Stas52
19.01.2009, 15:00
При вашем коде у меня проблема в следующем: если перемотать видео вперед, то всё хорошо. А если потом назад, то получается переход на 2-й кадр

zzz_dmg
19.01.2009, 15:12
в кнопках перехода пропишите
if (_root._currentframe !== 2) {
_root.gotoAndStop(1);
}

Stas52
19.01.2009, 15:23
Так у меня нету отдельных кнопок. У меня стандартный интерфейс FLVPlayback. Там также есть ползунок, с помощью которого можно перематывать видео. Как для них можно написать этот код?

Добавлено через 51 минуту
Вот оно - простое решение проблемы:

VPlayback.contentPath = "video.flv";
VPlayback.play();

var listenerObject:Object = new Object();

listenerObject.complete = function(eventObject:Object):Void {
_root.gotoAndStop(2);
};

VPlayback.addEventListener("complete", listenerObject);