隨著移動(dòng)技術(shù)的成熟和即將到來的5G時(shí)代,越來越多的公司開始開發(fā)移動(dòng)視頻軟件來占領(lǐng)市場(chǎng),隨著抖音的登場(chǎng),視頻APP現(xiàn)已是火海一片,連BAT也按奈不住紛紛入場(chǎng)。
AVFoundation
在開發(fā)領(lǐng)域AVFoundation框架是iOS開發(fā)視頻的必用框架。該框架包含的類超過100個(gè)、大量協(xié)議的集合及許多不同的功能和常量。在第一次遇到這些問題時(shí),看似掌握這個(gè)框架有一定的難度, 但是如果你將這個(gè)框架仔細(xì)地按功能單元進(jìn)行分解,就會(huì)變得比較容易理解。下面就看一下AVFoundation所提供的一些核心功能。
音頻播放和記錄
AVAudioPlayer和AVAudioRecorder可以在應(yīng)用程序中提供一種更簡(jiǎn)單的整合音頻播放和記錄的功能。這些方法并不是AVFoundation用于播放和記錄音頻的唯一方式,卻是學(xué)習(xí)起來最簡(jiǎn)單并且功能最強(qiáng)大的方法
媒體文件檢查
AVFoundation提供檢查正在使用的媒體文件的功能。可以查看這些媒體資源來確定是否適合一些特定的任務(wù),比如是否可以用于回放或其是否可以被編輯和導(dǎo)出。還可以獲取該媒體資源相關(guān)的技術(shù)參數(shù),比如內(nèi)容持續(xù)時(shí)間 創(chuàng)建日期或首選播放音量等。此外,該框架還基于AVMetadataItem類提供功能強(qiáng)大的元數(shù)據(jù)支持。這就允許開發(fā)者讀寫關(guān)于媒體資源的描述信息。
視頻播放
AVFoundation框架可以讓你播放從本地文件或遠(yuǎn)程流中獲取的視頻資源,并對(duì)視頻播放和內(nèi)容展示進(jìn)行控制。這一部分的核心類是AVPlayer和AVPlayerItem,正是這兩個(gè)類讓你能夠?qū)Y源的播放進(jìn)行控制,此外它還可以整合其他更高級(jí)的功能,如控制子標(biāo)題和章節(jié)信息等。或者讓你鏈接訪問音頻和視頻這兩個(gè)不同的資源。
媒體捕捉
AVFoundation提供了一個(gè)豐富的API集來讓你可以對(duì)這些設(shè)備進(jìn)行精密控制。攝像頭捕捉的核心類是AVCaptureSession,其作為所有活動(dòng)的匯集點(diǎn)來接收攝像頭設(shè)備由各路流發(fā)過來的電影和圖片。這也是AVFoundation框架的一個(gè)可靠功能。
媒體編輯
AVFoundation框架語允許創(chuàng)建可以將多個(gè)音頻和視頻資源進(jìn)行組合的應(yīng)用程序,允許修改和編輯獨(dú)立的媒體片段,隨時(shí)修改音頻文件的參數(shù)以及添加動(dòng)畫標(biāo)題和場(chǎng)景切換效果。
AVFoundation有關(guān)資源組合的功能源于AVAsset的子類AVComposition。AVComposition中的軌道都是AVAssetTrack的子類AVCompositionTrack。一個(gè)組合軌跡本身由一個(gè)或多個(gè)媒體片斷組成,由AVCompositionTrackSegment類定義,代表這個(gè)組合中的實(shí)際媒體區(qū)域 。
描述如下圖所示:
AVComposition和AVCompositionTrack都是不可變對(duì)象,提供對(duì)資源的只讀操作。這些對(duì)象提供了一個(gè)合適的接口讓應(yīng)用程序的一部分可以進(jìn)行播放或處理。但當(dāng)需要?jiǎng)?chuàng)建自己的組合時(shí),就需要使用AVMutableComposition和AVMutableCompositionTrack所提供的可變子類。要?jiǎng)?chuàng)建自定義組合,需指定在將要添加到組合的源媒體的時(shí)間范圍,還要指定要添加片段的每個(gè)軌道的位置。
媒體處理
雖然通過AVFoundation框架可以在不通過對(duì)媒體資源字節(jié)一級(jí)進(jìn)行操作的前提下實(shí)現(xiàn)大量功能,但有時(shí)你可能還是需要訪問更底層的數(shù)據(jù)并對(duì)其進(jìn)行操作。幸運(yùn)的是,當(dāng)需要執(zhí)行更高級(jí)的媒體處理任務(wù)時(shí),可以使用AVAssetReader和AVAssetWriter類來實(shí)現(xiàn)這些功能。這些類提供直接訪問視頻幀和音頻樣本的功能,所以可以對(duì)媒體資源進(jìn)行任何更高級(jí)的處理。
-
iOS
+關(guān)注
關(guān)注
8文章
3399瀏覽量
153019 -
視頻開發(fā)
+關(guān)注
關(guān)注
0文章
6瀏覽量
5896
發(fā)布評(píng)論請(qǐng)先 登錄
評(píng)論