Воспроизвести звук при определенном playProgress или videoTime с помощью greensock? - PullRequest
1 голос
/ 31 марта 2012

Я использую greensock LoaderMax для загрузки видеофайлов и звуковых файлов.Я скопировал столько кода, сколько доступно для меня.Воспроизводится видео (s9), и в определенном проценте от видео мне нужно воспроизвести другой звук.

if(s9.playProgress > .1) // This is what I can't get to work
{
    s12_sound.playSound(); //This sound won't play at .1 playProgress
}

s9.content.visible = true;

s9.playVideo();

stop();

s9.addEventListener(VideoLoader.VIDEO_COMPLETE, play_s9_loop); //This plays a video once s9 is done.

function play_s9_loop(event:Event):void
{
    s9.content.visible = false;
    s9_loop.content.visible = true;
    s9_loop.playVideo();
}

Я полагаю, вы просто не можете выполнить if () в playProgress?Кроме того, я сосу на AS3.

Ответы [ 2 ]

2 голосов
/ 01 апреля 2012

Вы должны иметь возможность просто прослушивать событие INIT на видео (что обычно означает, что оно загружено достаточно для определения продолжительности видео), а затем добавить точку метки AS.

//...after you create your VideoLoader...
myVideoLoader.addEventListener(LoaderEvent.INIT, initHandler);
myVideoLoader.load();
function initHandler(event:LoaderEvent):void {
    myVideoLoader.addASCuePoint( myVideoLoader.duration * 0.1, "myLabel" );
    myVideoLoader.addEventListener(VideoLoader.VIDEO_CUE_POINT, cuePointHandler);
}
function cuePointHandler(event:LoaderEvent):void {
    trace("Hit the cue point " + event.data.name);
    s12_sound.playSound();
}

Также убедитесь, что вы предварительно загрузили этот s12_sound, чтобы он был готов к игре, когда вам это нужно.В противном случае вы можете вызывать playSound () как хотите, и этого не произойдет :)

1 голос
/ 31 марта 2012

Я не использовал этот класс раньше, но после прочтения документов похоже, что вы можете сделать что-то вроде этого: http://www.greensock.com/as/docs/tween/com/greensock/loading/VideoLoader.html

var mid:Number = s9_loop.duration/2; //get the midpoint using the duration property
s9_loop.addASCuePoint(mid, "middle") //using addASCubePoint to add a cuepoint to the midpoint of the video
s9_loop.addEventListener(VideoLoader.VIDEO_CUE_POINT, handleMidpoint); //listen for the cuepoint

Внутри функции обработчика

protected function handleMidpoint(e:Event):void{
     //play your sound
}
...