AVFoundation 核心功能

学习 AVFoundation 之初,最大的挑战就是理解该框架所提供的的大量类及其功能。该框架包含超过一百个类,有着大量的协议和常量,面对这些内容,看起来掌握起来具有一定的难度,但是如果按照功能单元进行分解,就会相对容易理解,下面来梳理一下 AVFoundation 所提供的一些核心功能。

音频播放和记录

AVAudioPlayerAVAudioRecorder 可以在应用中提供一种更简单的整合音频播放和记录的功能。这些方法并不是 AVFoundation 用于播放和记录音频的唯一方式,但却是学习起来最简单切功能最强大的方法。

媒体文件检查

AVFoundation 提供了检查正在使用的媒体文件的功能,可以查看这些资源来确定是否可以执行一些特定的任务,比如回放、编辑和导出等。还可以获取该媒体资源的相关技术参数,比如持续时间、创建日期等。此外该框架还基于 AVMetadataItem 类提供了强大的元数据支持,这就允许开发者读写关于媒体资源的描述信息。

视频播放

视频播放功能可以算的上是 AVFoundation 提供的最常用的功能了,这个功能甚至是很多应用程序最主要或次要的功能。 AVFoundation 框架可以播放从本地文件或远程流中获取的视频资源,并对视频内容的展示进行控制。这一部分的核心类是 AVPlayerAVPlayerIten,这两个类能够让开发者对资源的播放进行控制,此外还可以整合其他更高级的功能,如控制子标题和章节信息等。或者可以实现连续访问音频和视频这两种不同的资源。

媒体捕捉

AVFoundation 提供了一个丰富的 API 集来让我们可以对设备的内置摄像头进行精密控制,摄像头捕捉的核心类是 AVCaptureSession,其作为所有活动的汇集点来接收摄像头由个路流发过来的视频或图片。

媒体编辑

AVFoundation 对媒体资源的整合和编辑提供了强有力的支持。该框架允许创建可以将多个音频和视频资源进行整合的应用程序,允许修改和编辑独立的媒体片段、修改音频文件参数和添加动画标题和场景切换效果。Mac 和 iPhone 上提供的 iMovie 就是使用这个功能来实现的。

媒体处理

有时开发者可能需要访问媒体资源更底层的数据并对其进行操作,这时可以使用 AVAssetReaderAVAssetWriter 来实现一些更高级的媒体处理任务。这些类提供了直接访问视频帧和音频样本的功能。

你可能感兴趣的:(音视频学习)