声音池类实例讲解

作者:创世魂

● 辅助说明

注意:本类位于“多媒体功能支持”模块中,必须添加此模块才能使用。

 

● 本类说明

 

帮助文档如下图:

简单来说,本方法的作用通常用作播放“游戏提示音”或者其它类型的“短音效”提示。

通过本类播放音乐,最多也就能播放五六秒,即使是再长的音乐,也只会播放最开始的五六秒钟。

需要注意的是,本类中有两个ID值。

一个是由“加载音频/加载音频2”返回的“声音ID”

另外一个是由“播放”返回的“声音流ID”

通过“声音流ID”可以控制当前音乐的一些属性:例如,是否循环播放等等。

 

● 新建

 

帮助文档如下图:

本方法共有“三个”参数和“一个”返回值。

参数1:设定最大声音数,此数值并不是越大越好,通常情况下填写10以内的数字即可。

参数2:具体音频类型值参考“音频类型.XXX”.

参数3:没有意义的参数,忽略即可。

 

● 加载音频2

 

帮助文档如下图:

通过本方法可以加载音频,加载音频后才能执行“播放”方法。

返回值为“音频ID”,如果音频ID为0,则加载失败。

加载失败原因有两种:第一:音频资源命名不正确,二:并非标准的声音文件。

参数3:优先级别,本参数忽略即可。

如果要加载本地音频请使用“加载音频”方法。

 

● 播放

 

帮助文档如下图:

可以看到本方法共有七个参数,动态调用时“参数1”省略。

参数2:填写由“加载音频”返回的id值。

其它参数,如果没有这些需求,忽略即可。

注意:本方法会返回一个“音频ID”,返回值必定不为0,如果返回0表示播放失败。

 

● 置速度

 

帮助文档如下图:

通过本方法可以调整指定音频的播放速度。

参数2:填写由“播放”方法返回的音频ID。

参数3:不建议超过2,低于0.5。

注意:本方法只有在声音正在播放时有效,声音播放完毕后此设置无效。

所有的设置声音的方法均是如此,不再重复说明。

 

● 暂停

 

帮助文档如下图:

通过“播放”返回的声音流ID,来暂停当前声音的播放。

如果要继续播放可调用“恢复”方法。

务必保证当前声音正在播放,否则本方法无效。

 

● 恢复

 

帮助文档如下图:

恢复指定“声音流ID”的音频,务必保证此音频正在播放,否则本方法无效。

 

● 卸载声音

 

帮助文档如下图:

顾名思义,从整个声音池中删除指定的声音。

删除后,该声音将无法继续播放。

 

界面准备如下图:

拖放一个“线性布局容器”,其布局方向设置为“横向”

随后在布局器内放四个按钮,分别修改标题为:播放,暂停,恢复,卸载。

 

代码编写(1):

保存布局后,新增三个变量,分别为“声音池1”“声音ID”“流ID”

注意,声音池类变量要设置参考。

 

代码编写(2):

需要在“通知_被创建”事件下,定义一个“原始数据资源”变量,点击按钮导入一个标准的音频文件。

然后调用“声音池类.新建”方法,建立声音池对象,赋值给定义的“声音池1”变量。

通过当前“声音池1”变量,即可调用“加载音频2”方法加载音频。

参数内直接填写定义的“音频1”变量即可。

最后将“加载音频2”赋值给“声音ID”即可。

 

代码编写(3):

随后在“按钮_被单击”事件下,分别判断这四个按钮被点击,然后执行对应的方法。

注意:“播放”方法的参数调用的是“声音ID”并非“流ID”,千万不要写错。

“流ID”是由播放方法返回的,并且必定不为0.

通过“流ID”可设置当前音频播放速度。

 

运行结果如下图:

图文教程只能演示到这种地步,具体细节大家自行测试。

 

● 加载音频

 

帮助文档如下图:

通过本方法可以加载本地音频,返回值同样为非0的整数值。

如果返回0,表示加载失败。

本地路径可通过:“取外部存储空间根目录().取文件名()”获取。

参数3忽略即可。

调用方法直接将本类例子中的“加载音频2”方法替换为本方法即可。

 

● 置优先级

 

帮助文档如下图:

本方法根据“声音流ID”设定当前音频的优先级,当有N多个音频播放时,本音频优先播放。

调用方法:声音池1.置优先级(流ID,1).

务必保证参数2中的“声音流ID”正确。

 

● 置循环模式

 

帮助文档如下图:

顾名思义,通过本方法可以设置当前音频进行循环播放。

调用方法:声音池1.置循环模式(流ID,-1)。

参数3:有三种循环模式,根据实际需求填写即可。

 

● 置音量

 

帮助文档如下图:

顾名思义,通过本方法可以设置当前音频的音量。

调用方法:声音池1.置音量(流id,1,1)。

参数3、4为左右声道,根据自己的需求填写何时的数值即可。

 

● 全部暂停

 

帮助文档如下图:

顾名思义,如果当前声音池有N个声音在播放,调用本方法可暂停全部声音的播放。

调用方法:声音池1.全部暂停()。

 

● 全部恢复

 

帮助文档如下图:

恢复被暂停的声音,恢复后继续从暂停位置开始播放。

调用方法:声音池1.全部恢复()。

 

● 停止

 

帮助文档如下图:

顾名思义,通过本方法可以停止当前音频的播放。

停止后可调用“播放”方法重新播放。

调用方法:声音池1.停止(流ID)。

 

● 释放

 

帮助文档如下图:

顾名思义,通过本方法可以释放掉当前对象占用的所有资源。

如果不使用当前对象后,建议调用本方法释放资源。

调用方法:声音池1.释放()。