AV Foundation ① 初识

关于 AV Foundation

    AV Foundation 是苹果 OS X 系统和 iOS 系统中一个可以播放音频媒体、控制设备摄像头、处理音频和创建基于时间的视听媒体的框架。框架的构建考虑到了硬件环境和应用程序,其设计高度依赖多线程机制,其充分利用了多核硬件的优势并大量使用 BlockGCD 机制将复杂的计算进程放在后台线程运行,确保在大部分设备上应用程序以最佳性能运行。

AV Foundation 的适用范围

     iOS 为开发者提供了一系列高层及和低层级的框架来实现时基媒体的各功能,AV Foundation 是其中之一。下图展示了 AV Foundation 在整个体系中所处的角色:

media_playback_framework_2x.png

    在 iOS 中,利用 UIKit 框架(UIImagePickerController)可以很容易地将基本的静态图片和视频捕捉整合到应用程序中。此外,还提供了 AVKit 框架用于简化视频播放应用程序的创建过程,如果只是想播放视频,可以使用 AVKit 框架。虽然这些方法都很方便,但不够灵活,可自定义东西比较少。这时就需要基于 AV Foundation 框架来开发自定义功能。
   处于高层级框架和低层级框架之间的就是 AV Foundation,其提供了很多低层级框架才能实现的功能和性能,并且是以 Objective-C 接口方式实现的。同时它也可以和高层级的框架无缝衔接,比如 Media PlayerAssets Library, 也可以直接和 Core MediaCore Audio 进行交互。

   AV Foundation 底层主要由 Core AudioCore MediaCore Animation 框架支撑组成。其主要以C 接口为主,其中:

  • Core Audio 是处理所有音频事件的框架,由多个框架整合在一起的总称,为音频的录制、播放和处理提供相应接口。
  • Core Video 针对数字视频所提供的的管道模式,为 Core Media 提供图片缓存和缓存池支持,提供了一个能够对数字视频逐帧访问的接口。该框架通过像素格式之间的转换并管理视频同步事项使得复杂的工作得到了有效简化。
  • Core Media 提供针对音频样板和视频帧处理所需的低层级数据类型的接口。还提供了 CMTime 数据类型的时基模型。 CMTime 及其相关数据类型一般在 AV Foundation 处理基于时基的操作时使用。
  • Core Animation 是合成及动画相关框架,主要功能就是提供苹果平台所具有的美观、流程的动画效果。使用 Core Animation 时,对于视频内容的播放和视频捕获这两个动作,AV Foundation 提供了硬件加速机制对整个流程进行优化。还可以利用 Core Animation让开发者能够在视频编辑和播放过程中添加动画和贴纸效果。

AV Foundation 的核心功能

     AV Foundation 结合了六个主要技术领域,涵盖了在 Apple 平台上捕获、处理、合成、控制、导入和导出视听媒体的任务,其分成了下面 6 个模块:

媒体资源

    AV Foundation 框架用来表示媒体的主要类是 AVAssetAVAsset 是一个抽象类,不依赖于特定的数据格式,是其他资源类的父类,其定义了一个或多个媒体数据(音频和视频轨道)的集合的聚合表示,提供有关整个集合的信息,例如其标题、持续时间、自然呈现大小等。
    Asset 中的每个媒体数据片段都是统一的类型,称为轨道(track)AVAssetTrack 是媒体资产轨道的映射。在一个典型的简单情况下,一个轨道代表音频分量,另一个轨道代表视频分量;然而,在复杂的合成中,可能有多个重叠的音频和视频轨道。资产也可能有元数据。

    AV Foundation 中的一个重要概念是,初始化资产或轨道并不一定意味着它已准备好使用。甚至可能需要一些时间来计算项目的持续时间(例如,MP3 文件可能不包含摘要信息)。不是在计算值时阻塞当前线程,而是通过使用 block 定义的回调来请求值并异步获取结果。

音频播放和记录

    AVAudioPlayerAVAudioRecorder 可以在应用程序中提供一种更简单的整合音频播放和记录的功能。这些方法并不是 AV Foundation 用于播放和记录音频的唯一方式,还可以使用配置应用程序的音频行为 AVAudioSession

视频播放

     AV Foundation 提供的其中一个最常用的功能是视频播放功能,通过 AVPlayer 和 AVPlayerItem 可以让开发者播放本地文件或远程流中的视频资源,并对视频播放和内容的展示进行控制。此外它还可以整合其它更高级的功能,如控制子标题和章节信息等。

照片/视频捕捉

    AV Foundation 提供了一个丰富的 API 集合让开发者可以对设备内置的摄像头进行精密控制。摄像头捕捉的核心类是 AVCaptureSession,其作为所有活动的汇集点来接收摄像头设备由各路流发过来的电影和图片。

编辑音视频

    AV Foundation 同样对媒体资源的整合和编辑提供了强有力的支持,允许创建可以将多个音频和视频资源进行组合的应用程序,允许修改和编辑独立的媒体片段。并且当需要执行更高级的媒体处理任务时,可以用 AVAssetReaderAVAssetWriter 类来实现这些功能。这些类提供直接访问视频帧和音频样本的功能。

声音合成

    在 iOS 中可以使用 AVSpeechSynthesizer 类为程序添加文本转语言的声音合成功能。这个类用来播放一个或多个语音内容,这些内容都是 AVSpeechUtterance 类的实例。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,753评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,668评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,090评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,010评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,054评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,806评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,484评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,380评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,873评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,021评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,158评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,838评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,499评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,044评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,159评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,449评论 3 374
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,136评论 2 356

推荐阅读更多精彩内容