流媒体音频和视频独立as3

时间:2013-02-21 11:19:39

标签: actionscript-3 flash stream

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

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);
}

1 个答案:

答案 0 :(得分:0)

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

当声音运行完毕时会触发,但由于它已经循环播放,因此无需再次播放。

首先,您需要移动线

soundChannel = sound.play(0, 9999);

然后将其放在ns.play之后。所以声音会在视频开始后立即开始播放。 然后,为了防止它在视频开始时再次循环,只需检查soundChannel是否存在:

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

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