2.x + 框架升级 3.x + 需要声音audioEngine api 接口的
import { _decorator, Component, Node,find,AudioSource,director,game } from 'cc';
export class audioEngine extends Component {
static NODE :any = null ;
static YingLiang : number = 0.5;
static YingXiao : number = 1;
/** 播放音乐 */
static playMusic: any = function(ziyuan:any,chongfu:boolean){
var node = audioEngine.jidian("beijing");
if (node.playing) {
node.pause();
}
node.clip = ziyuan;
node.loop = true;
node.volume = audioEngine.YingLiang;
if(audioEngine.YingLiang > 0){
node.play();
}
}
/** 播放音效 */
static playEffect: any = function(ziyuan:any,chongfu:boolean){
var node = audioEngine.jidian(ziyuan.name);
node.clip = ziyuan;
node.loop = false;
node.volume = audioEngine.YingXiao;
if(audioEngine.YingXiao > 0){
node.play();
}
}
/*所有音效停止*/
static stopAll: any = function(){
if(audioEngine.NODE){
var shuju = audioEngine.NODE.children;
for(var m in shuju){
var sp = shuju[m].getComponent(AudioSource);
if(sp){
sp.pause();
}
}
}
}
/*所有音效暂停*/
static pauseAll: any = function(){
if(audioEngine.NODE){
var shuju = audioEngine.NODE.children;
for(var m in shuju){
var sp = shuju[m].getComponent(AudioSource);
if(sp){
sp.pause();
}
}
}
}
/*所有音效重放*/
static resumeAll: any = function(){
var node = audioEngine.jidian("beijing");
if(node){
node.play();
}
}
/** 展厅音效 */
static pauseAllEffects: any = function(){
if(audioEngine.NODE){
var shuju = audioEngine.NODE.children;
for(var m in shuju){
if(shuju[m].name != "beijing"){
var sp = shuju[m].getComponent(AudioSource);
if(sp){
sp.pause();
}
}
}
}
}
/** 暂停音乐 */
static pauseMusic: any = function(){
var node = audioEngine.jidian("beijing");
if(node){
node.pause();
}
}
/** 重放音乐 */
static resumeMusic: any = function(){
var node = audioEngine.jidian("beijing");
if(node){
node.play();
}
}
/** 音效音量 */
static setEffectsVolume: any = function(yinxiao:number){
audioEngine.YingXiao = yinxiao;
}
/** 音乐音量 */
static setMusicVolume: any = function(yinxiao:number){
audioEngine.YingLiang = yinxiao;
var node = audioEngine.jidian("beijing");
if(node){
node.volume = audioEngine.YingLiang;
}
}
static jidian (name:string) {
if(!audioEngine.NODE){
var mm = new Node("dUb_playlist");
director.getScene().addChild(mm);
audioEngine.NODE = mm;
game.addPersistRootNode(audioEngine.NODE);
}
var node = audioEngine.NODE.getChildByName(name);
if(node){
return node.getComponent(AudioSource);
}else{
node = new Node(name);
var sp = node.addComponent(AudioSource);
node.parent = audioEngine.NODE;
return sp;
}
}
}
