音频管理器类实例讲解

作者:创世魂

 

● 本类说明

 

帮助说明:

本方法的主要作用就是用来处理音频焦点,以及改变媒体音量等等……

具体可看帮助内的详细说明。

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

 

 

● 新建
● 绑定事件
● 取得焦点
● 放弃焦点

 

“新建”帮助文档:

顾名思义,通过本方法可以创建当前对象,创建对象后可以进行对各种方法的操作。

 

“绑定事件”帮助文档:

本方法的作用,用来监听“音频事件类”中的“焦点被改变”事件。

例如:程序A调用本方法监听事件后,打开程序B播放音乐。

程序B就会把程序A的音频焦点抢走“焦点被改变”事件就会触发。

 

“取得焦点”帮助文档:

顾名思义,通过本方法可以让当前应用获得“音频焦点”,暂停其它程序播放音乐。

最常见的例子:电话铃声响起时,如果你手机正在播放音乐或看电影。

声音会自动暂停,弹出接听电话的界面。

取得焦点成功返回“1”,失败返回“0”

参数2:调用方式“音频类型.XX”.

参数3:调用方式“音频焦点类型.XX”.

 

“放弃焦点”帮助文档:

简单来说就是,如果通过“取得焦点”把一个音乐播放器的音频焦点抢过来后。

调用本方法会将焦点换回去,让该音乐播放器继续播放音乐。

成功返回“1”,失败返回“0”

 

界面准备如下图:

准备两个按钮和一个文本框,保存布局。

 

代码编写(1):

定义两个变量,类型分别为“音频管理器类”“音频事件类”

注意:管理器变量要设置参考。

 

代码编写(2):

按照帮助文档中所说,右键“音频事件类”添加“事件接收方法”

 

代码编写(3):

添加完毕后,判断“音频事件”来源。

然后分别判断每一种焦点类型,对应的修改“文本框”的内容。

 

代码编写(4):

添加“通知_被创建”虚拟方法。

在本虚拟方法下,调用“音频管理器类.创建()”方法,赋值给“音频管理器1”变量。

最后调用“绑定事件”方法绑定“音频事件”变量。

 

代码编写(5):

“按钮_被单击”下,定义一个“焦点返回值”变量,类型为“整数”

然后分别判断“按钮1”“按钮2”被点击,分别执行“取消焦点”“放弃焦点”方法。

将方法赋值给“焦点返回值”变量,通过“如果”判断是否执行成功。

 

运行结果如下图(GIF):

GIF图片较大,如果加载不出来点击这里

通过图片可以看到,软件获得音频焦点后正在播放的音乐会自动停止播放。

“按钮2”被点击放弃时,音乐会自动重新播放。

如果当前软件已经获得了音频焦点,手动去点击音乐播放器的播放按钮。

此时“焦点被改变”就会被触发,弹出了“长期失去焦点”提示。

 

 

● 加载音效
● 播放音效
● 卸载音效

 

“加载音效”帮助文档:

顾名思义,执行本方法可以加载音效,此音效为安卓系统的一些声音。

因国内定制系统的缘故,手机之间的音效可能并不一致。

加载音效后可调用“播放音效”播放,本方法调用一次即可。

 

“播放音效”帮助文档:

顾名思义,进行音效播放。

可通过“音频效果标志”来指定音效,直接填写:音频效果标志.XXX即可。

参数3:如果无音量需求,忽略本参数即可。

 

“卸载音效”帮助文档:

顾名思义,卸载当前音效,卸载后将无法播放。

如果想要重新播放,需要重新调用“加载音效”方法。

 

代码编写如下图:

“按钮_被单击”下,按钮1被点击时,执行“播放音效”方法,播放提示音。

此提示音为系统提示音。

如果不想用了,可点击“按钮2”执行“卸载音效”方法。

“加载音效”方法执行一次即可,所以此方法建议填写到“通知_被创建”事件下。

本例程无法演示,大家自行测试。

 

 

● 取最大音量
● 置音频音量
● 取音频音量
● 调整音频音量

 

“取最大音量”帮助文档:

顾名思义,取出指定媒体声音的最大音量值。

在安卓手机中有多种声音类型,比如:闹钟,媒体等……

本方法需要通过“音频类型”来指定某种类型声音的最大声音值。

例如:“音频类型.媒体”

媒体声音值最大为“15”,部分设备可能有所不同。

 

“置音频音量”帮助文档:

设置指定“音频类型”的声音值,该声音值不能大于“取最大音量”的返回值。

参数4:可以指定调整音量时的“动作”

例如:“音频标志.音量框”可以显示系统音量框。

“音频标志.提示”会发出“嘟”的提示音。

 

“取音频音量”帮助文档:

顾名思义,通过本方法可以取出指定“音频类型”的音量值。

 

“调整音频音量”帮助文档:

本方法和“置音频音量”的区别在于,本方法可以进行递增或递减形式的调整。

通过“音频动作”来实现。

例如:“音频动作.增加”,会在原音量的基础上增加音量。

 

代码编写如下图:

“按钮1”被点击下,定义两个整数变量,分别赋值“取最大音量”“取音频音量”

然后判断当前“音频音量”是否等于“最大音量”

如果等于就弹出提示,否则就调用“调整音频音量”进行修改。

“按钮2”被点击时,执行“置音频音量”方法,一次性设置为指定音量值。

然后可以调用“取音频音量”方法赋值给文本框显示当前音量。

 

运行结果如下图:

可以看到“按钮1”被点击时,系统音量框弹出。

音量加满后,也弹出提示当前为最大音量。

“按钮2”被点击后,也成功设置当前音量为3.

 

● 调整音量

 

帮助文档如下图:

本方法和“调整音频音量”不同之处在于,本方法不支持设置“音频类型”

默认调整“媒体音量”,如果当前处于通话状态,将调整“通话音量”

代码编写参考“调整音频音量”,此处不再详细介绍。

 

● 扬声器(写)
● 扬声器(读)

 

“扬声器(写)”帮助文档:

“写属性”的作用就是用来设置当前扬声器是否启用。

如果属性值为“真”则开启扬声器,否则相反。

“扬声器(读)”帮助文档:

“读属性”的作用,就是用来读取当前扬声器是否正常。

返回“真”表示当前扬声器正常,否则返回假。

 

代码编写如下图:

分别在“按钮1和2”的点击下,执行对应的读写属性即可。

本例程无法演示,大家自行测试。

 

● 铃声模式(写)
● 铃声模式(读)

 

“铃声模式(写)”帮助文档:

“写属性”的作用就是用来设置当前手机铃声模式。

通过“音频铃声模式.XXX”来设置。

例如:设置为“震动”,当前手机就会开启震动。

如果此时有电话打进来,不会响铃只会进行震动。

“铃声模式(读)”帮助文档:

“读属性”的作用,就是用来读取当前铃声模式。

返回值参考:“音频铃声模式.XXX”

 

代码编写如下图:

分别在“按钮1和2”的点击下,执行对应的读写属性即可。

本例程无法准确演示,大家自行测试。

 

● 麦克风静音(写)
● 麦克风静音(读)

 

“麦克风静音(写)”帮助文档:

顾名思义,本写属性就是用来设置当前麦克风是否静音。

属性值为“真”表示静音,否则相反。

注意:本方法为全局方法,设置静音后除了通话外,所有声音播放都会静音。

 

“麦克风静音(读)”帮助文档:

“读属性”的作用,就是用来读取麦克风是否静音。

返回“真”表示麦克风正常,返回“假”则当前麦克风被静音。

 

代码编写如下图:

分别在“按钮1和2”的点击下,执行对应的读写属性即可。

本例程无法准确演示,大家自行测试。

 

● 正在播放媒体(读)

 

帮助文档如下图:

本属性的作用就是用来读取当前是否正在播放音乐/视频等。

正在播放返回“真”,否则返回“假”

 

代码编写如下图:

直接调用本读属性判断返回值即可。

 

运行结果如下图(GIF):

 

 

● 取属性

 

帮助文档如下图:

本方法的作用就去取出一些音频的属性值,例如:采样率等……

可通过“音频属性.XX”来指定。

如果是逻辑属性,“真”返回“true”“假”返回“false”

 

代码编写如下图:

例如:此处读取音频采样率,赋值给文本框显示。

 

运行结果如下图:

点击“按钮1”后将显示出当前的音频采样率。