编程中声音怎么重复执行

编程中声音怎么重复执行

问:flash as3中如何在点击一个按钮后实现声音循环播放,说明思路,有代码说明最好
  1. 答:这样:
    var sound:Sound = new Sound( New URLRequest("xxx.mp3"));
    var sc:SoundChannel = new SoundChannel();
    sc = sound.play();
    sc.addEventListener( PLETE , replayhandler );
    //重复播放
    function replayhandler( e:Event ){
    sc.stop();
    sc = sound.play(0);
    sc.addEventListener( PLETE , replayhandler );
    }
    原理很简单,就是在声音播放完成的函数中再次添加该侦听器,这样就能不断地重复播放了。
    哦 如果在你的代码基础上改的话 那就是:
    function xh(e:Event):void
    {
    gaibian=true;
    _channel.stop();
    _channel=_sound.play(0);
    _channel.addEventListener(PLETE,xh);//添加这句
    }
    }
  2. 答:1楼的思路是对的,不过不要忘记把播放完之后的声道(SoundChannel)回收掉。按理说flashplayer是可以自动回收的。但是记住!所有拥有监听器的东东是永远无法回收的(内存溢出)。所以请这样修改
    function xunhuan(e:Event):void
    {
    _channel.addEventListener(PLETE,xh);
    function xh(e:Event):void
    { gaibian=true;
    _channel.stop();
    _channel.removeEventListener(PLETE,xh);
    _channel=_sound.play(0);
    _channel.addEventListener(PLETE,xh);
    }
    }
问:as3.0编程控制音乐声音一直播放?
  1. 答:很简单,直接新建一个图层,帧长度等于你总共的长度,里面不要有关键帧,然后选中这个图层,在属性-声音里选择要嵌入的声音文件,将同步的选项改为“开始”和“循环”就OK了,都不用as3。
    如果一定要用as3的话也可以,不过这样已经达到要求了,就没有必要了吧~
问:windows编程怎么同时播放两个或者多个声音文件?
  1. 答:这个应该是个线程同步问题,每次只能响应一个事件,锁住,其他线程挂起,等待处理中的线程退出,其他线程才能进入调用。你可以用音频处理软件把声音处理一下,模拟成你想要的效果。
  2. 答:你得了解这么一个概念,任何线程都是不能同时运行的。
编程中声音怎么重复执行
下载Doc文档

猜你喜欢