我有这两个函数。正如你所看到的,第一个是流式传输视频(女巫正在循环),第二个是流媒体传输音频(女巫也在循环)。因此,当视频播放时,我需要开始运行音频并独立循环,因为我的音频长度大于视频长度。有什么想法我该怎么做吗。请使用代码。
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);
}
首先,您不需要soundChannel.addEventListener(Event.SOUND_COMPLETE, onSoundChannelSoundComplete);
当声音运行完毕时,它会触发,但由于它是循环的,因此无需再次播放。
首先,你需要移动线
soundChannel = sound.play(0, 9999);
并将其放置在ns.play
之后。因此,视频一开始,声音就开始了。然后,为了防止视频开始时再次循环,只需检查soundChannel是否存在:
if (soundChannel == null)
soundChannel = sound.play(0, 9999);
请注意,没有办法在之后保持声音与视频同步,这完全取决于flash播放器的意愿。