当前位置:首页 > 奇闻趣事

音频管理器 菜鸟丨小游戏音频管理教程

所有游戏都离不开音乐,但如何管理音乐是个问题。本菜鸟教程主要讲解如何通过自己写的音频管理课,让自己的小游戏项目更加鲜明,管理起来更加方便。音频管理类需要用白鹭的Sund类。建议先去官网查查相关API和例子。

http://developer.egret.com/cn/apidoc/index/name/egret.Sound

让我们试着写一个音频管理演示。

首先,创建一个音频设置面板用户界面

通过白鹭的eui组件设置面板。

音乐音效的切换由eui的ToggleSwitch控制,音量由HSlider控制。

同时生成关联的TS类:

classSetUpextendseui。组件实现ui组件{

publicvolume: eui。HSlider//volume publicMusic: eui。ToggleSwitch//Music publicEffect: eui。ToggleSwitch//sound publicconstructor() {

super();

}

protectedpatadded(PartName:string,instance: any): void{

super.partAdded(partName,instance);

}

protected children created():void {

super . children created();}

}

其次,创建SoundManager(音频管理类)

将声音管理器编写为单独的类:

classSoundManager{

private static _ manager:SoundManager;

publicationstaticgetinstance(){

if(!SoundManager。_经理){

SoundManager。_ manager = newSoundManager();

}

returnSoundManager。_经理;

}

}

声明几个私有属性来管理音乐音效:

privatebgMusic:白鹭。声音;//背景音乐private bgmusic _ channel:egret . sound channel;

private isbgmusiccomplete:boolean = false;//背景音乐是否已加载私点击:白鹭。声音;//单击privateisclickcomplete时的声音:boolean = false

private _ ISmusic:boolean = true;//背景音乐是否播放private _ ise effect:boolean = true;//音效是否播放private _ volumem:number = 1;//volume privates:number = 1;//控制背景音乐不重复添加

在构造函数中加载音频资源:

publicconstructor() {

this.bgMusic=newegret。sound();

This.bgMusic.load("资源/音频文件路径. MP3 ");

this.bgMusic.addEventListener(白鹭。Event.COMPLETE,()= >;{

//成功执行音频加载的方法

this.isbgMusicComplete = true

},这个);

this.click=newegret。sound();

this . click . load(" resource/audio file path . MP3 ");

this . click . AddEventListener(egret。Event.COMPLETE,()= >;{

this.isClickComplete = true

},这个);

}

分别写出控制音乐播放、停止和音量控制的方法:

//播放背景音乐publicatplaygmusic(){

if(this . ISgmusIComplete & amp;& ampthis.isMusic & amp& ampthis.cs) {

this . bgmusic _ channel = this . bgmusic . play(0,0);

this . cs = 0;

}

}

//停止背景音乐publistopbgmusic(){

if(this.bgMusic_channel) {

this . bgmusic _ channel . stop();

this.bgMusic _ channel = null

this . cs = 1;

}

}

//播放音效publiplayclickeffect(){

//this . iseeffect调用getter方法

if(this . Isclick complete & amp;& ampthis . iseeffect){

this.click.play(0,1);

}

}

publicgetisMusic() {

//通过本地存储实现没有第二局时保存最后一盘音频的方案

let ret = egret . local storage . GetItem(" Ismusic ");

if(ret=="true"||!ret) {

这个。_ isMusic = true

} else{

这个。_ isMusic = false

}

返回此。_ isMusic

}

publicatesetismusic(b:boolean){

这个。_ Ismusic = b;

egret . LocalStorage . SetItem(" Ismusic ",b . ToString());

if(b) {

//播放声音

this . PlayGmusic();

} else{

//关闭声音

this . stop bgmusic();

}

}

//设置_ isEffect属性publicssetiseffect的值(b: boolean) {

这个。_ iSeeffect = b;

egret . LocalStorage . SetItem(" iSeeffect ",b . ToString());

}

//获取_ isEffect属性publicgetisEffect()的值

let ret = egret . local storage . GetItem(" iSeeffect ");

if(ret=="true"||ret==null) {

这个。_ iSeeffect = true;

} else{

这个。_ iSeeffect = false;

}

返回此。_ iSeeffect;

}

//设置音量publicsetvolume(v:number){

这个。_ volume = v;

egret . LocalStorage . SetItem(" volume ",v . ToString());

this . setvolume(v);

}

publicgetvolume(){

let ret = egret . local storage . GetItem(" volume ");

if(ret==null){

这个。_ volume = 1;

}else{

这个。_ volume = Number(ret);

}

返回此。_ voluem

}

第三,编写安装类(安装面板)

classSetUpextendseui。组件实现ui组件{

publicvolume: eui。HSlider//volume publicMusic: eui。ToggleSwitch//Music publicEffect: eui。ToggleSwitch//sound publicconstructor() {

super();

}

protectedpatadded(PartName:string,instance: any): void{

super.partAdded(partName,instance);

}

protected children created():void {

super . children created();

this . init();

}

privateinit(){

this . volume . value = 10;

这个。Music.addEventListener(白鹭。Event.CHANGE,this.onchangeBGM,this);

这个。Effect.addEventListener(egret。Event.CHANGE,this.onchangeET,this);

this . volume . addevent listener(egret。Event.CHANGE,this.onchangeVolume,this);

}

//单击背景音乐开关privateonchangeBGM(){

SoundManager。Instance.isMusic=this。Music.selected//设置背景音乐sound manager . instance . playclickeffect();//播放音效}

//单击音效开关privateonchange () {

SoundManager。Instance.isEffect = this。效果. selected;//设置音效sound manager . instance . playclick effect()是否可以播放;//播放音效}

//控制卷privateonchangeVolume(){

SoundManager。instance . volume = this . volume . value/10;

// SoundManager。instance . playclickeffect();//播放音效}

}

四.在main中添加相应的点击和显示设置面板的方法

protected CreateGamesence():void {

letbg:白鹭。bitmap = this . createbitmapbyname(" BG _ jpg ");

this . AddChild(BG);

let set:SEtuP = NewSetup();//设置面板

letszw:白鹭。TextField=newegret。TextField();

Szw.text= "设置";

szw.x = 500

szw.y = 200

this . AddChild(szw);

szw.touchEnabled = true

szw.addEventListener(白鹭。TouchEvent.TOUCH_TAP,()= >;{

!set.parent & amp& ampthis . AddChild(set);//如果设置面板的父类不存在,则添加到舞台

SoundManager。instance . playclickeffect();//播放音效

},这个);

bg.touchEnabled = true

bg.addEventListener(白鹭。TouchEvent.TOUCH_TAP,()= >;{

set.parent & amp& ampthis . remove child(set);//如果设置面板的父类存在,则删除

SoundManager。instance . playclickeffect();//播放音效

},这个);

}

最后,附上本教程的源代码:https://github.com/hkjlx/SoundDemo

联系我们

1.《音频管理器 菜鸟丨小游戏音频管理教程》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《音频管理器 菜鸟丨小游戏音频管理教程》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guonei/1049104.html

上一篇

一颗荔枝50多万 天价的挂绿母树荔枝被偷摘

下一篇

杭州男子判朋友圈道歉5天 向原告公司公开赔礼道歉

adobeaudition 贾爽:专业音频软件AdobeAudition的常用工具解释!

adobeaudition 贾爽:专业音频软件AdobeAudition的常用工具解释!

作者姓名:贾爽,现居河南省南阳市,音视频软硬件产品研究员,网络主播声卡调试学习与培训讲师,“双格KX驱动工具”制作人,南阳Title网络科技有限公司创始人,河南省流行音乐协会南阳工作委员会委员,精通计算机互联网和音视频系统架构,对网络营销布局到落地各方面有独到见解。 今天,贾爽分享了专业音频...

卜算子咏梅朗读视频 猪年音频祝福+朗读《卜算子 咏梅》

卜算子咏梅朗读视频 猪年音频祝福+朗读《卜算子 咏梅》

祝朋友们新的一年身体健康,工作顺利,家庭幸福,万事如意!!! 春联作者:法运大师,著名书法家,古拙道泉寺方丈,湖北省佛教协会副秘书长,武汉市佛教协会副主席,CPPCC市洪山区常委。...

抖音里电影牧马人的背景音乐

抖音里电影牧马人的背景音乐

颤音中电影《牧民》的背景音乐是《清新的小女孩》。这首歌主要讲的是两个因为家境悬殊而一起长大的人。后来,这个男孩凭借他的音乐天赋成为了一名歌手。当他回来找自己的女孩时,女孩成了母亲。直到这时,男孩才意识到自己真的失去了心爱的女孩,于是写下了这首歌,来纪念自己的感情。《清新小姑娘》的歌手在网上的信息很少。他只知道...

朗诵背景音乐 朗诵配乐的选择对朗诵效果至关重要

朗诵背景音乐 朗诵配乐的选择对朗诵效果至关重要

朗读是一种语言艺术,用清晰响亮的声音和多种语言手段完美地表达一部作品的思想和感情。目前,全国各地都非常重视朗诵艺术的发展。每年,全国都会举办数百场各种类型的朗诵比赛,从夏青杯、曹参杯等全国性比赛到一所学校、一个单位举办的内部朗诵比赛。可以说朗诵已经渗透到了各行各业,深刻影响了很多人的生活。...

俄外长访华视频背景音乐弯弯的月亮 耳熟能详

俄罗斯外长拉夫罗夫3月22日至23日对中国进行访问。据俄罗斯卫星网3月22日报道,拉夫罗夫今天已抵达中国桂林进行访问。俄外交部在官方推特上发布了一段TikTok短视频,视频中拉夫罗夫站在镜头前,背后疑似为桂林山水,并配文“谢尔盖·拉夫罗夫外长在中国访问期间”。值得一提的是,这段短视频配乐正是许多中国人耳熟能详的歌曲《弯弯的月亮》。俄外交部在随后的一条推文中则晒出了与中国国务委员兼外交部长王毅的合影...

音效助手 雷霆主持人音效软件

音效助手 雷霆主持人音效软件

迅雷主机音效软件是一款特殊的音效播放软件,功能强大。它有五大类:主持人专用、MC专用、搞笑音效、人专用音效、生活音效,包括笑声、掌声等200多种音效。,还可以自定义添加音效,非常好,可以帮助主持人很好的调解气氛。  软件功能 1.有笑声、掌声等200多种音效。分5类,包括主持人专用、MC喊麦...

少年派的奇幻漂流小说 【推荐】10年以来最美的电影《少年派的奇幻漂流》(附英文音频索取办法)

  • 少年派的奇幻漂流小说 【推荐】10年以来最美的电影《少年派的奇幻漂流》(附英文音频索取办法)
  • 少年派的奇幻漂流小说 【推荐】10年以来最美的电影《少年派的奇幻漂流》(附英文音频索取办法)
  • 少年派的奇幻漂流小说 【推荐】10年以来最美的电影《少年派的奇幻漂流》(附英文音频索取办法)

《逍遥游》原文 庄子-逍遥游原文+音频+注音

庄(zhuānɡ)、子(子)、内(内)、皮(内)、孝(西)、瑶(阳)、地(地)、伊(yϡ) 在mínɡ北部有一种鱼,它的名字叫昆。坤(kn)是(zhω)大(dà),而不是(bω)觉察(zhω)其(qí)数(juτ)千(qiān)里(luτ)和(y)的。Hua (huà)和(ér)是(wéi)...