内容简介:AV Foundation 的剖析 1.0
1.文本阅读功能
用到 AVSpeechSynthesizer
类
- [x] 发音类型
- [x] 发音速率
- [x] 音调
- [x] 阅读间隙
2.播放和录制音频文件
播放
音频会话在 didFinishLaunchingWithOptions
中配置
设置后台播放: Plist
文件中添加
Required background modes
类型的数组,添加
App plays audio or streams audio/video using AirPlay
即可
用到 AVAudioPlayer
类
prepareToPlay
:
创建
AVAudioPlayer
实例的时候建议调用其 prepareToPlay
,
得到的好处是:可以取得音频硬件并预加载
Audio Queue
的缓冲区
当调用play方法的时候会隐性激活,但是在创建时准备播放器可以降低调用play方法和听到声音输出之间的延时。
这里要区别 该类的一些方法:
play | pause | stop |
---|---|---|
立即播放 | 停止播放 | 停止播放 |
区别:
由上面可以看出 pause 与 stop 都会对播放暂停进行操作,通过pause 和stop方法暂停的 通过 play 都会继续播放。其主要区别在于底层上的一些处理,用stop 方法会撤销调用 prepareToPlay时所做的设置。 |
---|
- [x] 音量
- [x] pan 值 立体声播放控制 -1.0 ~ 1.0.默认居中。
- [x] 播放率 0.5半速 ~ 2.0 (2倍速)
- [x] 循环 设置 numberOfLoops 大于0的值是循环的次数。-1是无限循环
- [x] 音频计量
-
构建于 Core Audio 中的 C -based Audio Queue Services 的最顶层。
-
如果需要在 网络流中播放音频 、访问 原始音频样本 或者需要 非常低的延时 。这些操作的时候是不能够胜任的。
-
播放包含内存版本的
Data
或者URL
ps: 该 **`URL`** 必须在沙盒之内或者改 **`URL`** 必须是用户系统库中的一个元素
ps: 一般处理音频的时候主要处理的是 意外事件 操作。
-
中断操作(各种中断操作)
监听 NSNotification.Name.AVAudioSessionInterruption
判断中断的类型进行相应的事件处理操作
-
播放线路改变 (切换耳机,音响等等)
监听 NSNotification.Name.AVAudioSessionRouteChange
判断切换的类型进行相应的事件处理操作,比如 耳机拔掉 等等
对音频的处理要遵循 HIG
( Human Interface Guidelines
) 相关定义
录制音频
用到 AVAudioRecorder
类
需要提供的数据:
-
存储文件的路径path
URL
- 配置录音键值信息
- 异常捕捉
如同上面音频播放一样:
同样建议调用其:
prepareToPlay
方法。
该方法执行底层
Audio Queue
初始化的必要过程,在指定的
URL
参数指定的位置创建一个文件,将录制启动时的延时降到最低
-
[x] 音频格式 在
AVFormatIDKey
中获取对于的音频格式.大约
37
种类型保真度越高的格式其文件就越大。合适的格式一方面保证质量也能更好的优化其存储空间 如:
kAudioFormatMPEG4AAC
与kAudioFormatAppleIMA4
PS: URL 后缀格式一定要与 所选择的格式对应上。 -
[x] 采样率
AVSampleRateKey
上一个专题中对其进行了详细说明。设置合适的采样率是质量的保证
推荐: 8_000、16_000、22_050、44_100
-
[x] 通道数
AVNumberOfChannelsKey
默认值是1
1:单声道录制 (一般推荐)
2:立体声录制
PS:不能使用
AVAudioSessionCategorySoloAmbient
该分类是只读的,不支持音频输入
根据其功能的划分使用:我们如果需要录音又要对外播放的时候。那就考虑
AVAudioSessionCategorySoloAmbient
这个分类
同样操作麦克风需要
权限的申请
Audio Metering
AVAudioPlayer
AVAudioRecorder
这两个类实用的功能是能够对音频进行测量。
Audio Metering
可以让开发者读取音频的平均分贝和峰值分贝数据,并使用这些数据以可视化方式将声音的大小呈现给最终的用户。
3.
AVAsset
: AV Foundation 最重要的类
是 AV Foundation 的核心
...
以上所述就是小编给大家介绍的《AV Foundation 的剖析 1.0》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 【Java集合源码剖析】ArrayList源码剖析
- Java集合源码剖析:TreeMap源码剖析
- 【剖析 | SOFARPC 框架】系列之 SOFARPC 优雅关闭剖析
- 【剖析 | SOFARPC 框架】系列之 SOFARPC 注解支持剖析
- 【剖析 | SOFARPC 框架】系列之 SOFARPC 泛化调用实现剖析
- 剖析 SOFARPC 框架系列之 SOFARPC 泛化调用实现剖析
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
JSON 在线解析
在线 JSON 格式化工具
HSV CMYK 转换工具
HSV CMYK互换工具