音視頻相關框架CoreMedia、CoreAudio、CoreVideo、CoreAudioKit、AVFoundation、AVKit
1.CoreMedia 提供對媒體文件操作的底層接口
2.CoreAudio 提供對音頻文件操作的底層接口
3.CoreVideo 提供對視頻文件操作的底層接口
以上三個框架,在需要對音頻或視頻創(chuàng)建及展示進行精確控制的應用程序才會涉及,一般應用程序應該都用不上,而我們常用的是下面幾個
4.CoreAudioKit
import CoreAudioKit.AUViewController
import CoreAudioKit.CABTMIDICentralViewController
import CoreAudioKit.CABTMIDILocalPeripheralViewController
import CoreAudioKit.CAInterAppAudioSwitcherView
import CoreAudioKit.CAInterAppAudioTransportView
CoreAudioKit提供了一個簡單的音頻界面,并且是跨應用的
5.AVFoundation
import AVFoundation.AVAnimation
// 媒體資源和元數據
import AVFoundation.AVAsset
import AVFoundation.AVAssetCache
import AVFoundation.AVAssetDownloadStorageManager
import AVFoundation.AVAssetDownloadTask
import AVFoundation.AVAssetExportSession
import AVFoundation.AVAssetImageGenerator
import AVFoundation.AVAssetReader
import AVFoundation.AVAssetReaderOutput
import AVFoundation.AVAssetResourceLoader
import AVFoundation.AVAssetTrack
import AVFoundation.AVAssetTrackGroup
import AVFoundation.AVAssetTrackSegment
import AVFoundation.AVAssetWriter
import AVFoundation.AVAssetWriterInput
import AVFoundation.AVAsynchronousKeyValueLoading
// 音頻
import AVFoundation.AVAudioFormat
import AVFoundation.AVAudioMix
import AVFoundation.AVAudioProcessingSettings
import AVFoundation.AVBase
// 媒體捕捉
import AVFoundation.AVCameraCalibrationData
import AVFoundation.AVCaptureAudioDataOutput
import AVFoundation.AVCaptureAudioPreviewOutput
import AVFoundation.AVCaptureDataOutputSynchronizer
import AVFoundation.AVCaptureDepthDataOutput
import AVFoundation.AVCaptureDevice
import AVFoundation.AVCaptureFileOutput
import AVFoundation.AVCaptureInput
import AVFoundation.AVCaptureMetadataOutput
import AVFoundation.AVCaptureOutput
import AVFoundation.AVCaptureOutputBase
import AVFoundation.AVCapturePhotoOutput
import AVFoundation.AVCaptureSession
import AVFoundation.AVCaptureSessionPreset
import AVFoundation.AVCaptureStillImageOutput
import AVFoundation.AVCaptureSystemPressure
import AVFoundation.AVCaptureVideoDataOutput
import AVFoundation.AVCaptureVideoPreviewLayer
// 視頻過渡
import AVFoundation.AVComposition
import AVFoundation.AVCompositionTrack
import AVFoundation.AVCompositionTrackSegment
import AVFoundation.AVContentKeySession
import AVFoundation.AVDepthData
import AVFoundation.AVError
import AVFoundation.AVFAudio
import AVFoundation.AVMediaFormat
import AVFoundation.AVMediaSelection
import AVFoundation.AVMediaSelectionGroup
// 元數據
import AVFoundation.AVMetadataFormat
import AVFoundation.AVMetadataIdentifiers
import AVFoundation.AVMetadataItem
import AVFoundation.AVMetadataObject
// 緩存
import AVFoundation.AVSampleBufferAudioRenderer
import AVFoundation.AVSampleBufferDisplayLayer
import AVFoundation.AVSynchronizedLayer
import AVFoundation.AVTextStyleRule
import AVFoundation.AVTime
import AVFoundation.AVTimedMetadataGroup
import AVFoundation.AVUtilities
import AVFoundation.AVVideoCompositing
import AVFoundation.AVVideoComposition
import AVFoundation.AVVideoSettings
import AVFoundation
import AVFoundation.AVOutputSettingsAssistant
// 視圖
import AVFoundation.AVPlayer
import AVFoundation.AVPlayerItem
import AVFoundation.AVPlayerItemMediaDataCollector
import AVFoundation.AVPlayerItemOutput
import AVFoundation.AVPlayerItemTrack
import AVFoundation.AVPlayerLayer
import AVFoundation.AVPlayerLooper
import AVFoundation.AVPlayerMediaSelectionCriteria
import AVFoundation.AVQueuedSampleBufferRendering
import AVFoundation.AVRouteDetector
import AVFoundation.AVSampleBufferRenderSynchronizer
import CoreGraphics
import CoreMedia
import Foundation
AVFoundation是一個強大的多媒體處理框架,它基于CoreMedia、CoreAudio、CoreVideo、CoreAnimation等框架,所以我們對音視頻的處理大多數時候都是用它,我們可以用它:
- 音視頻播放和錄制
- 操作媒體資源和元數據(混合音頻、視頻過渡效果、使用CoreAnimation動畫等)
6.AVKit
import AVKit.AVError
import AVKit.AVKitDefines
import AVKit.AVPictureInPictureController
import AVKit.AVPlayerViewController
import AVKit.AVRoutePickerView
AVKit基于AVFoundation封裝的框架,它提供了視頻的播放界面,如果我們的設計是符合原生系統(tǒng)的話,毫不猶豫就應該使用它了