0

我有这两个功能。正如您所看到的,第一个正在流式传输视频(女巫正在循环),第二个正在流式传输音频(女巫也正在循环)。所以我需要在视频播放音频时开始运行并独立循环,因为我的音频长度大于视频的长度。任何想法我怎么能做到这一点。请使用代码。

function NCListener(e:NetStatusEvent){

    if (e.info.code == "NetStream.Play.Stop") {

        ns.play("http://media.easyads.bg/ads/display_ads_richmedia/video/avon/maria_ilieva/video_2.flv");
        shaker(null);
        }
    };


var sound:Sound = new Sound();
var soundChannel:SoundChannel= new SoundChannel();

sound.addEventListener(Event.COMPLETE, onSoundLoadComplete  );

function onSoundLoadComplete(e:Event):void{
    sound.removeEventListener(Event.COMPLETE, onSoundLoadComplete);
    soundChannel = sound.play(0, 9999);
    soundChannel.addEventListener(Event.SOUND_COMPLETE, onSoundChannelSoundComplete);
}

function onSoundChannelSoundComplete(e:Event):void{
    e.currentTarget.removeEventListener(Event.SOUND_COMPLETE, onSoundChannelSoundComplete);
    soundChannel = sound.play(0, 9999);
}
4

1 回答 1

0

首先,你不需要 soundChannel.addEventListener(Event.SOUND_COMPLETE, onSoundChannelSoundComplete);

它在声音完成运行时触发,但由于它正在循环播放,因此无需再次播放。

首先,你需要移动线路

soundChannel = sound.play(0, 9999);

并将其放在您的ns.play. 因此,声音将在您的视频开始时立即开始。然后,为了防止它在视频开始时再次循环,只需检查 soundChannel 是否存在:

if (soundChannel == null)
    soundChannel = sound.play(0, 9999);

请注意,之后没有办法让您的声音与您的视频保持同步,这完全取决于 flashplayer 的意愿。

于 2013-02-21T12:08:20.840 回答