SoundManager2 创建和播放 55 种声音

发布于 2024-12-23 00:16:56 字数 1377 浏览 0 评论 0原文

更新:所以我在 Adob​​e 的 AS3 规范上找到了这个:

SoundChannel — SoundChannel 对象,用于控制声音。如果您没有声卡或者用完可用的声道,则此方法返回 null。一次可用的最大声道数为 32。

来源:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/Sound.html

示例代码:http://charliehield.com/sandbox/sm2/

我正在使用以下函数创建 55 种声音:

function makeSomeNoize(){
        for(var i = 1; i <= 55; i++){
            var SoundObject = soundManager.createSound({
                stream: false,
                id: 'sound'+i+'',
                url:'clips/mp3/sound'+i+'.mp3',
                autoPlay: false,
                multiShot: false,
                loops: 9999,
                volume: 30 
            }).load();
        }
    }

接下来,我通过开始按钮上的单击功能触发播放剪辑并使其静音。

$('#start').click(function (){

            $(this).fadeOut('slow');

            for(var i = 1; i <= 55; i++){
                soundManager.play('sound'+i);
                soundManager.mute('sound'+i);
            }
        });

然后每个按钮都使用toggleMute();功能(以便声音“同步”循环,然后您可以切换其音量)。

唯一的问题是我可以看到 55 个声音正在加载,但实际上只有前 32 个声音会播放。

我完全傻了。任何帮助都会很棒。

UPDATE: so I found this on Adobe's AS3 spec:

SoundChannel — A SoundChannel object, which you use to control the sound. This method returns null if you have no sound card or if you run out of available sound channels. The maximum number of sound channels available at once is 32.

source: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/Sound.html

Example code: http://charliehield.com/sandbox/sm2/

I'm creating the 55 sounds with the following function:

function makeSomeNoize(){
        for(var i = 1; i <= 55; i++){
            var SoundObject = soundManager.createSound({
                stream: false,
                id: 'sound'+i+'',
                url:'clips/mp3/sound'+i+'.mp3',
                autoPlay: false,
                multiShot: false,
                loops: 9999,
                volume: 30 
            }).load();
        }
    }

Next, I trigger playing the clips and muting them with a click function on the start button.

$('#start').click(function (){

            $(this).fadeOut('slow');

            for(var i = 1; i <= 55; i++){
                soundManager.play('sound'+i);
                soundManager.mute('sound'+i);
            }
        });

And then each button uses the toggleMute(); function (so that the sounds are looping "in sync" and then you can just toggle their volume).

Only issue is that I can see the 55 sonds being loaded, but only the first 32 sound will actually play.

I'm totally stuped. Any help would be great.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文