iOSiOS 进阶AVFoundation框架

AVFoundation框架 (一) 简单了解

2017-02-03  本文已影响2554人  ValienZh

本系列参考《AVFoundation开发秘籍》 ,仅供学习使用.

1. AVFoundation的适用范围

AVFoundation是苹果在iOS和OS X系统中用于处理基于时间的媒体数据的Objective-C框架. 供使用者来开发媒体类型的应用程序.

虽然现在你可以在iOS和 OS X系统中通过WebView或HTML标签直接来播放音视频内容,但是如果想要加入额外媒体相关功能如:录制,音视频流控制,添加额外动画和图片效果等.则需要专门的音视频框架进行控制.

iOS媒体环境

上图是iOS系统下媒体应用的结构层. AVKit框架用于简化媒体应用的创建过程,如果你只需要看电影,那么使用这个就可以了, UKit可以支持简单的录制功能 . 而更多功能需要低层级框架支持.下面简单介绍下AVFoundation内最主要的支撑框架和其提供的功能.

2. AVFoundation的文档

AVFoundation 提供了大量的类和相关功能,可以通过苹果官方指南简单了解下:
转: AVFoundation 指南翻译

3. 数字媒体简单了解

在深入了解学习AVFoundation前,你最好还要了解下相关现代数字媒体的采样和处理知识.

视频内容的存储: 我们先确定每个独立帧图片的大小,以1280x720分辨率为例,一帧像素数量约等于一百万个像素点,通常称1M . 如果对每个像素点使用8位的RGB三原色存储,一个像素就需要24位存储空间. 一帧就需要2.6MB的存储空间. 而一个帧率30FBS的一秒视频就需要79MB存储. 显然,这不合实际. 所以需要专门对其的存储和传输格式做压缩处理 .

如果你注意的话,很多摄像设备和软件都提到了4:4:4,4:2:0等字眼,这些值就是这些设备所使用二次抽样的参数,根据这些值将亮度比例转换色度值.一般专业相机使用4:4:4全彩信息比例.

MAC OS X中有一个NSSpeechSynthesizer类.使用这个类可以很方便的在Cocoa应用中添加"文本转语音"功能.iOS系统中可使用AVSpeedSynthesizer类实现相似功能,来播放一段文本内容.

上一篇 下一篇

猜你喜欢

热点阅读