音頻
Core Audio Overview
Multimedia Programming Guide
AudioToolbox
Record or play audio, convert formats, parse audio streams, and configure your audio session.
功能
音頻轉(zhuǎn)換服務(wù) AudioConverterService
用于各種線性 PCM 音頻格式之間的轉(zhuǎn)換次乓。也可以用于線性 PCM 與各種壓縮音頻格式的轉(zhuǎn)換吗购,比如將 PCM 音頻流編碼壓縮為 AAC 音頻格式则拷,減少數(shù)據(jù)量。AudioConverter 直接使用硬件進(jìn)行編碼操作向叉,支持AAC,MP3,ALAC音頻編碼格式糖权。
音頻隊列服務(wù) AudioQueueService
提供一個緩沖隊列用來管理音頻流,一般用于錄音或者音頻播放。
音頻文件服務(wù) AudioFileStream
主要用于解析音頻流和音頻流的讀寫铜幽。
系統(tǒng)聲音服務(wù) SystemSoundService
用來直接播放少于30秒的音頻文件,非常簡單快捷究孕。
- AudioQueue 和 AudioFileStream 結(jié)合配合使用可以實現(xiàn)網(wǎng)絡(luò)音頻流的播放功能啥酱。
Audio Queue Services Programming Guide
AudioUnit
Add sophisticated audio manipulation and processing capabilities to your app. Create audio unit extensions that generate or modify audio in a host app.
iOS 中的所有音頻技術(shù)都建立在 AudioUnit 之上。只有當(dāng)您需要最高程度的控制厨诸,性能或靈活性镶殷,或者只需直接使用音頻單元即可獲得特定功能(如聲學(xué)回聲消除)時,在項目中直接使用音頻單元是正確的選擇微酬。
功能
具有低延遲的同時音頻I / O(輸入和輸出)绘趋,例如用于VoIP(互聯(lián)網(wǎng)協(xié)議語音)應(yīng)用。
- 一般用于對低延遲要求高的情況颗管,比如直播推送端的錄音功能陷遮。
響應(yīng)回放合成聲音,例如用于音樂游戲或合成樂器
使用特定的音頻單元功能垦江,例如聲學(xué)回聲消除帽馋,混合或音調(diào)均衡
一種處理鏈架構(gòu),可讓您將音頻處理模塊組合成靈活的網(wǎng)絡(luò)。這是iOS中唯一提供此功能的音頻API绽族。
Core Audio
Use specialized data types to interact with audio streams, complex buffers, and audiovisual timestamps.
包含所有音頻框架服務(wù)使用的通用的音頻格式數(shù)據(jù)類型姨涡。
視頻
AVFoundation
Work with audiovisual assets, control device cameras, process audio, and configure system audio interactions.
功能
AVAsset
Asset表示一個音頻或者視頻媒體資源,支持網(wǎng)絡(luò)資源吧慢。
- 可以獲取到音視頻的track涛漂。
- AVAssetImageGenerator 可以獲取到視頻中的某一幀圖像。
視頻音頻照片捕獲
提供AVCapture相關(guān)的工具類實現(xiàn)捕獲功能检诗,支持直接生成音頻匈仗,圖片和視頻文件。同時也支持獲取實時捕獲的數(shù)據(jù)流逢慌。
- 捕獲實時的數(shù)據(jù)流悠轩,通過CoreImage 進(jìn)行濾鏡處理,之后通過OpenGL 或者 Metal 渲染涕癣,可以實現(xiàn)拍照實時濾鏡的功能哗蜈。包括直播推流端推送視頻數(shù)據(jù)流。
AVPlayer
AVPlayer 用于音視頻的播放坠韩,支持網(wǎng)絡(luò)文件的播放×读校可以實現(xiàn)一些簡單的播放功能只搁。
AVAudioSession
與系統(tǒng)音頻進(jìn)行交互,例如修改當(dāng)前音頻功能的模式俭尖,監(jiān)聽其他應(yīng)用的音頻播放氢惋。
音頻
- AVAudioPlayer用于播放本地音頻文件。
- AVAudioRecorder用于實現(xiàn)簡單的錄音功能稽犁,只能保存到本地文件焰望,不能操作音頻流。
- AVAudioConverter 用于多種音頻流格式的轉(zhuǎn)換已亥。
多媒體組合
提供 AVComposition 相關(guān)類用于多個源的音頻和視頻流的組合熊赖。
- 給一個視頻音頻替換其他的聲音文件。
- 多個視頻合成單個視頻虑椎,單個視頻分割為多個視頻震鹉。
- 多個音頻文件混合,分割捆姜。
音視頻導(dǎo)出
AVAssetReader 相關(guān)類用于本地音視頻流的讀取传趾,支持多個流組合讀取包括 AVComposition 生成的流。
- 通過 AVAssetReader 獲取視頻流泥技,通過 Core Image 實現(xiàn)視頻播放實時濾鏡的功能浆兰。
AVAssetWriter 相關(guān)類用于將音視頻流寫入到本地文件,支持多個流同時寫入。
Speech Synthesis
可以將文字轉(zhuǎn)為音頻播放簸呈。
AVFoundation Programming Guide
AVkit
Create view-level services for media playback, complete with user controls, chapter navigation, and support for subtitles and closed captioning.
AVPlayer 相關(guān)類提供音視頻播放的功能宽涌。基于 AVFoundation 實現(xiàn)蝶棋,繼承自 UIKit卸亮,可以直接添加到 UIKit視圖中使用。
Core Audio Kit
Add user interfaces to audio units.
Core Media
Represent time-based audio-visual assets with essential data types.
提供一些基礎(chǔ)數(shù)據(jù)類型在多個音視頻框架中共用玩裙。
Core Video
Process digital video—including manipulation of individual frames—using a pipeline-based API and support for both Metal and OpenGL.
提供一個使用視頻幀的渲染管道兼贸,支持 OpenGL 和 Metal 渲染。
- 將視頻流通過 OpenGL 或者 Metal 進(jìn)行實時渲染吃溅,需要通過 Core Video的工具類對視頻流進(jìn)行 Texture轉(zhuǎn)換溶诞。
Media Player
Add the ability to find and play songs, audio podcasts, audio books, and more from within your app.
主要用于播放 iOS 音樂庫中的音樂.
VideoToolbox
Work directly with hardware-accelerated video encoding and decoding capabilities.
提供直接使用硬件加速的視頻編碼和解碼功能
硬件編解碼就是使用 GPU 進(jìn)行編解碼。相對 CPU 軟解碼决侈,GPU 可以很少的占用 CPU 資源螺垢,速度快,更省電赖歌。支持 H.264 和 H.265 視頻編碼標(biāo)準(zhǔn)枉圃。
PhotoKit
Work with image and video assets managed by the Photos app, including those from iCloud Photos and Live Photos.