跨功能访问SoundManager 2

时间:2012-09-26 14:01:32

标签: javascript flash soundmanager2

好的,这件事太棒了!我在.js文件中设置了SoundManager 2并在我的页面上播放了音频。我目前唯一的问题是弄清楚如何在soundManager.setup({...})之外播放音频。例如,以下工作很好......

function mSound() {
/*SETUP SOUND MANAGER 2*/
soundManager.setup({
// where to find flash audio SWFs, as needed
url: 'audio/',
onready: function() {
console.log('SM2 is ready to play audio!');

    /*MY SOUND COLLECTIONS*/ 
    soundManager.createSound({
    id: 'myIntro',
    url: 'audio/Indonesia.mp3',
    autoPlay: false,
    volume: 15
    });
    soundManager.play('myIntro');

}
});
}

但是,如果我尝试将soundManager.play('myIntro')放入另一个函数,如...

function mIntro() {
 soundManager.play('myIntro');
}

...音频无法播放。任何建议都会很棒!

由于

2 个答案:

答案 0 :(得分:1)

我想我解决了。通过设置局部变量作为我的mSound()函数的参数,如此...

function mSound(id,url,volume) {
this.id = id;
this.url = url;
this.volume = volume;

/*SETUP SOUND MANAGER 2*/
soundManager.setup({
url: 'audio/',
onready: function() {
         //console.log('SM2 is ready to play audio!');
     /*MY SOUND COLLECTIONS*/ 
     soundManager.createSound({
     id: id,
     url: 'audio/'+ url,
     volume: volume
     });
     soundManager.play(id);
     }
}); 
}

...我现在可以在其他javascript函数中做这样的很酷的东西并播放声音!

mSound('myIntro','Indonesia.mp3',5);

加载自定义函数后,您仍然可以使用soundManager全局对象属性。例如,您可以稍后在代码中暂停您的音轨...

 soundManager.togglePause('myIntro');

希望这有助于某人:)

答案 1 :(得分:1)

你尝试过这样的事吗?

var sound = soundManager.getSoundById('myIntro');
sound.play();

它正在我的项目中工作。