第Ⅰ部分 AV Foundation基础 3
第1章 AV Foundation入门 3
1.1 AV Foundation的含义 3
1.2 AV Foundation的适用范围 4
1.3 解析AV Foundation 5
1.3.1 音频播放和记录 5
1.3.2 媒体文件检查 6
1.3.3 视频播放 6
1.3.4 媒体捕捉 6
1.3.5 媒体编辑 6
1.3.6 媒体处理 6
1.4 了解数字媒体 6
1.4.1 数字媒体采样 7
1.4.2 音频采样介绍 7
1.5 数字媒体压缩 11
1.5.1 色彩二次抽样 11
1.5.2 编解码器压缩 13
1.5.3 视频编解码器 13
1.5.4 音频编解码器 15
1.6 容器格式 16
1.7 初识AV Foundation 16
1.8 小结 20
1.9 挑战 20
第2章 播放和录制音频 21
2.1 Mac和iOS的音频环境 21
2.2 理解音频会话 22
2.2.1 音频会话分类 22
2.2.2 配置音频会话 23
2.3 使用AVAudioPlayer播放音频 23
2.3.1 创建AVAudioPlayer 23
2.3.2 对播放进行控制 24
2.4 创建Audio Looper 25
2.5 配置音频会话 29
2.6 处理中断事件 30
2.7 对线路改变的响应 33
2.8 使用AVAudioRecorder录制音频 35
2.8.1 创建AVAudioRecorder 36
2.8.2 控制录音过程 37
2.9 创建Voice Memo应用程序 38
2.9.1 配置音频会话 38
2.9.2 实现录音功能 39
2.10 使用Audio Metering 44
2.11 小结 48
第3章 资源和元数据 49
3.1 理解资源的含义 49
3.2 创建资源 50
3.2.1 iOS Assets库 50
3.2.2 iOS iPod库 51
3.2.3 Mac iTunes库 52
3.3 异步载入 52
3.4 媒体元数据 54
3.5 使用元数据 58
3.5.1 查找元数据 59
3.5.2 使用AVMetadataItem 60
3.6 创建MetaManager应用程序 63
3.6.1 THMediaItem 63
3.6.2 THMetadata的实现 67
3.6.3 数据转换器 69
3.6.4 简单转换 70
3.6.5 转换Artwork 71
3.6.6 转换注释 72
3.6.7 转换音轨数据 73
3.6.8 转换唱片数据 75
3.6.9 转换风格数据 76
3.6.10 完成THMetadata 79
3.7 保存元数据 81
3.8 小结 82
3.9 挑战 83
第4章 视频播放 85
4.1 播放功能综述 85
4.1.1 AVPlayer 86
4.1.2 AVPlayerLayer 86
4.1.3 AVPlayerItem 88
4.2 播放秘籍 88
4.3 处理时间 90
4.4 创建视频播放器 91
4.4.1 创建视频视图 91
4.4.2 创建视频控制器 93
4.4.3 监听状态改变 96
4.5 时间监听 97
4.5.1 定期监听 98
4.5.2 边界时间监听 98
4.5.3 条目结束监听 99
4.5.4 播放栏委托回调 100
4.6 创建可视搓擦条 102
4.7 显示字幕 106
4.8 Airplay 110
4.9 小结 111
4.10 挑战 112
第5章 AV Kit用法 113
5.1 针对iOS平台的AV Kit框架 113
5.2 针对Mac OS X平台的AV Kit框架 115
5.3 迈出第一步 115
5.4 控件类型 119
5.4.1 内嵌类型 119
5.4.2 浮动类型 120
5.4.3 最小化类型 120
5.4.4 None类型 121
5.5 拓展学习 121
5.6 章的处理 124
5.7 启用修剪 129
5.8 导出 130
5.9 传统资源的兼容 132
5.10 小结 135
5.11 挑战 136
第Ⅱ部分 媒体捕捉 139
第6章 捕捉媒体 139
6.1 捕捉功能综述 139
6.1.1 捕捉会话 140
6.1.2 捕捉设备 140
6.1.3 捕捉设备的输入 140
6.1.4 捕捉的输出 141
6.1.5 捕捉连接 141
6.1.6 捕捉预览 141
6.2 简单的秘籍 143
6.3 创建相机应用程序 144
6.3.1 创建预览视图 145
6.3.2 创建捕捉控制器 148
6.3.3 设置捕捉会话 149
6.3.4 启动和停止会话 151
6.3.5 处理隐私需求 152
6.3.6 切换摄像头 153
6.3.7 配置捕捉设备 155
6.3.8 调整焦距和曝光 156
6.3.9 调整闪光灯和手电筒模式 160
6.3.10 拍摄静态图片 161
6.3.11 使用Assets Library框架 163
6.3.12 视频捕捉 165
6.4 小结 170
6.5 挑战 170
第7章 高级捕捉功能 171
7.1 视频缩放 171
7.2 人脸检测 176
7.3 机器可读代码识别 186
7.3.1 一维条码 186
7.3.2 创建条码扫描器 188
7.3.3 创建条码识别的委托 191
7.4 使用高帧率捕捉 196
7.4.1 高帧率捕捉综述 197
7.4.2 支持高帧率捕捉 197
7.5 视频处理 201
7.6 学习CMSampleBuffer 202
7.6.1 样本数据 202
7.6.2 格式描述 203
7.6.3 时间信息 204
7.6.4 附加的元数据 204
7.6.5 AVCaptureVideoData-Output 205
7.7 小结 209
7.8 挑战 209
第8章 读取和写入媒体 211
8.1 综述 211
8.1.1 AVAssetReader 212
8.1.2 AVAssetWriter 212
8.1.3 读写示例 213
8.2 创建音频波形视图 215
8.2.1 读取音频样本 216
8.2.2 缩减音频样本 220
8.2.3 渲染音频样本 222
8.3 捕捉录制的高级方法 224
8.4 小结 237
8.5 挑战 238
第Ⅲ部分 媒体创建和编辑 241
第9章 媒体的组合和编辑 241
9.1 组合媒体 241
9.2 时间的处理 243
9.2.1 CMTime 243
9.2.2 CMTimeRange 245
9.3 基础方法 246
9.4 15 Seconds示例应用程序 249
9.5 创建一个组合 251
9.6 导出组合 256
9.7 小结 260
9.8 挑战 260
第10章 混合音频 261
10.1 混合音频 261
10.2 15 Seconds应用程序中的音频混合 264
10.3 小结 269
10.4 挑战 269
第11章 创建视频过渡效果 271
11.1 综述 271
11.1.1 AVVideoComposition 272
11.1.2 AVVideoComposition-Instruction 272
11.1.3 AVVideoCompositionLayer-Instruction 272
11.2 概念阶段 272
11.2.1 部署视频布局 273
11.2.2 定义重叠区域 274
11.2.3 计算通过和过渡的时间范围 276
11.2.4 创建组合和层指令 278
11.2.5 创建和配置AVVideo-Composition 279
11.2.6 创建视频组合的捷径 280
11.3 为15 Seconds应用程序添加视频过渡 281
11.4 小结 290
11.5 挑战 290
第12章 动画图层内容 291
12.1 CoreAnimation应用 291
12.2 在AVFoundation中使用CoreAnimation 293
12.2.1 使用AVSynchronizedLayer播放 294
12.2.2 使用AVVideoComposition-CoreAnimationTool导出 295
12.3 15 Seconds应用程序:添加动画标题 296
12.4 准备组合 304
12.4.1 播放时应用CoreAnimation 305
12.4.2 导出时应用CoreAnimation 306
12.5 小结 307
12.6 挑战 308