AVAsset是一個(gè)抽象的,不可變的類但骨,用于模擬定時(shí)視聽媒體励七,如視頻和聲音。 Asset
可以包含旨在一起呈現(xiàn)或處理的一個(gè)或多個(gè)軌道奔缠,統(tǒng)一媒體類型中的每一個(gè)掠抬,包括但不限于音頻,視頻校哎,文本两波,隱藏式字幕和字幕。
概覽
AVAsset定義構(gòu)成Asset
的軌道的集合屬性闷哆。 (您可以訪問代表集合軌道的AVAssetTrack實(shí)例腰奋,因此,如果需要抱怔,您可以單獨(dú)檢查每個(gè)實(shí)例劣坊。)
您通常使用AVURLAsset(一個(gè)AVAsset的具體子類)實(shí)例化一個(gè)Asset
- 使用涉及視聽媒體資源(例如流(包括HTTP直播流),QuickTime電影文件屈留,MP3文件和其他類型的文件)的URL局冰。您還可以使用其他具體子類實(shí)例化Asset
,這些子類以有用的方式擴(kuò)展視聽媒體的基本模型灌危,因?yàn)锳VComposition用于臨時(shí)編輯康二。
Asset
的屬性作為一個(gè)整體由AVAsset定義。另外勇蝙,可以獲得對(duì)表示集合的軌道的AVAssetTrack實(shí)例的引用沫勿,使得可以獨(dú)立地檢查這些中的每一個(gè)。
由于定時(shí)視聽媒體的性質(zhì),在Asset
成功初始化時(shí)产雹,其密鑰的一些或所有值可能不會(huì)立即可用烫罩。任何鍵的值可以在任何時(shí)候被請(qǐng)求,并且資產(chǎn)總是同步地返回它的值洽故,盡管它可能必須阻塞調(diào)用線程以這樣做贝攒。為了避免阻塞,您可以注冊(cè)對(duì)特定鍵的通知时甚,并在其值可用時(shí)收到通知隘弊。有關(guān)更多詳細(xì)信息,請(qǐng)參閱AVAsynchronousKeyValueLoading荒适。
要播放AVAsset的實(shí)例梨熙,使用它初始化AVPlayerItem的實(shí)例,使用播放器項(xiàng)目來設(shè)置其呈現(xiàn)狀態(tài)(例如是否應(yīng)該播放資源的有限時(shí)間范圍等)刀诬,并將播放器項(xiàng)目提供給根據(jù)該項(xiàng)目是要自己播放還是與其他項(xiàng)目的集合一起播放的AVPlayer對(duì)象咽扇。
您可以將AVAsset對(duì)象插入到AVMutableComposition對(duì)象中,以便從一個(gè)或多個(gè)源資產(chǎn)組合視聽構(gòu)造陕壹。
屬性和方法表
| OC | Swift|備注
----|------|----|----|
創(chuàng)建一個(gè)Asset | + assetWithURL: |init(url: URL) |返回一個(gè)用于檢查媒體資源的Asset
載入數(shù)據(jù)| - cancelLoading | func cancelLoading()|取消加載所有觀察者的所有值
檢查Asset | duration | var duration: CMTime|Asset的持續(xù)時(shí)間
|providesPreciseDurationAndTiming|var providesPreciseDurationAndTiming: Bool|一個(gè)布爾值质欲,表示Asset是否提供精確的時(shí)間。
|creationDate|var creationDate: AVMetadataItem?|表示Asset的創(chuàng)建日期糠馆。
|preferredRate|var preferredRate: Float|Asset播放時(shí)的固有速率
|preferredTransform|var preferredTransform: CGAffineTransform|應(yīng)用于Asset的可視內(nèi)容以進(jìn)行呈現(xiàn)或處理的優(yōu)選變換嘶伟。
|preferredVolume|var preferredVolume: Float|要播放Asset的可聽媒體的優(yōu)選音量。
測(cè)定可用性 |playable |var isPlayable: Bool|指示Asset或其網(wǎng)址是否可用于初始化AVPlayerItem的實(shí)例又碌。
|exportable|var isExportable: Bool|一個(gè)布爾值九昧,表示導(dǎo)出Asset是否可以使用
|readable|var isReadable: Bool|一個(gè)布爾值,表示是否可以使用AVAssetReader提取Asset的媒體數(shù)據(jù)毕匀。
|composable|var isComposable: Bool|一個(gè)布爾值铸鹰,表示Asset是否可以在AVCompositionTrack對(duì)象的段內(nèi)使用。
|hasProtectedContent|var hasProtectedContent: Bool|表示Asset是否具有受保護(hù)內(nèi)容的一個(gè)布爾值皂岔。
|compatibleWithAirPlayVideo|var isCompatibleWithAirPlayVideo: Bool|表示該Asset是否與AirPlay視頻兼容蹋笼。
|compatibleWithSavedPhotosAlbum|var isCompatibleWithSavedPhotosAlbum: Bool|一個(gè)布爾值,表示是否可以將Asset寫入“已保存的照片”相冊(cè)凤薛。
訪問曲目|tracks|var tracks: [AVAssetTrack]|Asset包含的所有曲目的集合姓建。
|trackGroups|var trackGroups: [AVAssetTrackGroup]|包含Asset中所有軌道組的數(shù)組诞仓。
|- trackWithTrackID:|func track(withTrackID: CMPersistentTrackID)|返回具有指定軌道ID的軌道缤苫。
|- tracksWithMediaType:|tracks(withMediaCharacteristic: String)|返回呈現(xiàn)指定類型的媒體的Asset的Asset曲目的數(shù)組。
|- tracksWithMediaCharacteristic:|func tracks(withMediaCharacteristic: String)|返回呈現(xiàn)具有指定特征的媒體的Asset的AVAssetTrack對(duì)象的數(shù)組墅拭。
|- unusedTrackID|func unusedTrackID()|返回Asset中的任何曲目當(dāng)前未使用的ID活玲。
訪問元數(shù)據(jù)|lyrics|var lyrics: String?|適用于當(dāng)前語言環(huán)境的Asset的歌詞。
|metadata|var metadata: [AVMetadataItem]|用于值可用的所有元數(shù)據(jù)標(biāo)識(shí)符的元數(shù)據(jù)項(xiàng)數(shù)組。
|commonMetadata|var commonMetadata: [AVMetadataItem]|每個(gè)可用值為其的公共元數(shù)據(jù)鍵值的元數(shù)據(jù)項(xiàng)數(shù)組舒憾。
|availableMetadataFormats|var availableMetadataFormats: [String]|字符串?dāng)?shù)組镀钓,每個(gè)字符串表示Asset可用的元數(shù)據(jù)格式。
|- metadataForFormat:|func metadata(forFormat: String)|返回AVMetadataItem對(duì)象的數(shù)組镀迂,每個(gè)元素對(duì)應(yīng)指定格式的容器中的每個(gè)元數(shù)據(jù)項(xiàng)丁溅。
使用章節(jié)元數(shù)據(jù)|availableChapterLocales|var availableChapterLocales: [Locale]|可用于Asset中章節(jié)元數(shù)據(jù)的語言環(huán)境。
|- chapterMetadataGroupsWithTitleLocale:containingItemsWithCommonKeys:|func chapterMetadataGroups(withTitleLocale: Locale, containingItemsWithCommonKeys: [String]?)|返回一個(gè)包含給定標(biāo)題語言環(huán)境并包含指定鍵的章節(jié)數(shù)組探遵。
|- chapterMetadataGroupsBestMatchingPreferredLanguages:|func chapterMetadataGroups(bestMatchingPreferredLanguages: [String])|返回其語言環(huán)境最佳匹配首選語言列表的章節(jié)數(shù)組窟赏。
查找選擇媒體|preferredMediaSelection|var preferredMediaSelection: AVMediaSelection|此Asset的媒體選擇組的默認(rèn)媒體選擇。
|availableMediaCharacteristicsWithMediaSelectionOptions|var availableMediaCharacteristicsWithMediaSelectionOptions: [String]|媒體選擇選項(xiàng)可用的媒體特性數(shù)組箱季。
|- mediaSelectionGroupForMediaCharacteristic:|func mediaSelectionGroup(forMediaCharacteristic: String)|返回包含一個(gè)或多個(gè)具有指定媒體特征的選項(xiàng)的AVMediaSelectionGroup對(duì)象涯穷。
管理參考限制|referenceRestrictions||