音视频播放 第十一章 多媒体应用开发( 四 )


mEqualizer.usePreset(list.get(i))
2.6 环境声混响器:
如果想要有很好的混响效果可以使用
常用方法:
2.7 :示波器
示波器是用来显示波形的控件,但是这不是一个View,它只是提供了当前的波形信息(byte数组),我们需要自定义View去显示
首先需要一个权限

有两个比较重要的方法
通过一个监听器来监听所采集的数据
mVisualizer.setDataCaptureListener(new Visualizer.OnDataCaptureListener(),Visualizer.getMaxCaptureRate() / 2, true, false){}
一共有4个参数,第一个参数是监听者,第二个参数表示的是采集的频率,第三个参数表示是否采集波形,第四个参数表示是否采集频率
r 有2个回调,一个用于显示FFT数据,展示不同频率的振幅,另一个用于显示声音的波形图
对的许多设置必须在之前完成
注意:并不能保证所有的设备都能支持这些效果的,所以应该首先调用在对应音频效果类上的()的方法来检测它的可用性 。
例如:.();
上述三个子类的操作步骤:
3、类
在音频应用中使用淡入,淡出和交叉淡入淡出以及其他短暂的自动音量转换 。类是在.0中新增的功能 。
使用进行音量控制实际是通过 .来实现的 。
3.1 .
.的三个参数
插补器类型
音量曲线始终通过指定的控制点,根据配置的内插器类型,控制点之间的值由样条曲线导出 。
可用插补器类型有四个常量 :
持续时间

音视频播放  第十一章 多媒体应用开发

文章插图
时间间隔[0.0,1.0]中的指定时间坐标缩放到指定的持续时间(以毫秒为单位) 。这决定了运行时音量曲线的实际时间长度,并将曲线应用于音频输出 。
3.2 使用
1.创建配置
在构建之前,必须创建一个实例. 。
VolumeShaper.Configuration config =new VolumeShaper.Configuration.Builder().setDuration(3000).setCurve(new float[] {0.f, 1.f}, new float[] {0.f, 1.f}).setInterpolatorType(VolumeShaper.Configuration.INTERPOLATOR_TYPE_LINEAR).build();
**如果没有参数,**..构造函数将返回一个构建器,该构建器使用默认设置创建一个配置:BIC,持续时间为1秒,并且不包含曲线 。在调用之前,您必须向构建器添加曲线build() 。
2.创建一个
要创建一个,调用(),传入.对象
volumeShaper = myMediaPlayer.createVolumeShaper(config);
不能在之间共享,但可以调用相同配置来创建多个应用于不同的
3.运行
? 创建后,第一次调用apply()必须指定PLAY 操作进行启动
shaper.apply(VolumeShaper.Operation.PLAY);
改变曲线:使用()方法来更改曲线 。
4、使用播放音频
由于占用资源较多,且不支持同时播放多个音频,所以还提供了另一个播放音频的类—— 。即音频池,可以同时播放多个短小的音频,如果超过流的最大数目,会基于优先级自动停止先前播放的流,而且占用的资源较少 。另外还支持自行设置声音的品质、 音量、 播放比率等参数 。
4.1 相对于的优点
适合短且对反应速度比较高的情况(游戏音效或按键声等),文件大小一般控制在几十K到几百K,最好不超过1M
可以与同时播放,也可以同时播放多个声音;