首页 理论教育 初探AVFoundation——你的媒体处理利器

初探AVFoundation——你的媒体处理利器

时间:2023-06-23 理论教育 版权反馈
【摘要】:AVFoundation是苹果提供的一个用来操作多媒体的库。如图17.1.1所示,AVFoundation在iOS的框架中处于UIKit之下、Core Audio和Core Media之上的位置。图17.1.1AVFoundation在iOS框架中的位置通常情况下,建议读者使用高级别的接口去实现自己想要的功能。AVAsset是AVFoundation主要用来表示多媒体的类,所有音、视频都可以由这个类来创建。我们还可以使用AVExportSession对已经载入的多媒体进行重新编码,比如转换格式、分辨率或者帧率。此外,AVFoundation中还有很多功能等着我们来探索。

初探AVFoundation——你的媒体处理利器

AVFoundation是苹果提供的一个用来操作多媒体的库。它提供了应用层接口去获取多媒体的详细信息,包括检查、创建、编辑和重新编码媒体文件。我们也可以从设备得到输入流或者在视频播放时进行实时的操控。如图17.1.1所示,AVFoundation在iOS的框架中处于UIKit之下、Core Audio和Core Media之上的位置。

图17.1.1 AVFoundation在iOS框架中的位置(www.xing528.com)

通常情况下,建议读者使用高级别的接口去实现自己想要的功能。播放电影时,可以用AVKit中提供的播放器;如果只是简单的拍照或者选择图片视频则可以使用UIImagePicker Controller。

AVAsset是AVFoundation主要用来表示多媒体的类,所有音、视频都可以由这个类来创建。它将多媒体的信息整合在了一起,包括名称、时间、大小、作者等信息。AVAsset不依赖于特定的数据格式,AVAsset最终将媒体分为各种轨道(音频轨道和视频轨道),其中可能还有元数据,用于表示格式以及时长等。需要注意的是,一旦创建了AVAsset的实例,并不意味着多媒体已经被加载了,还需要一个异步调用成功才能真正地播放。

如果想自己控制音、视频的播放,需要额外创建AVPlayerItem实例对音、视频进行播放控制。AVPlayerItem实例可以控制播放哪个轨道,如播放时间、暂停或者继续等。我们还可以使用AVExportSession对已经载入的多媒体进行重新编码,比如转换格式、分辨率或者帧率。此外,AVFoundation中还有很多功能等着我们来探索。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈