寫在前面
喜歡AVFoundation資料的同學可以關注我的專題:《AVFoundation》專輯
也可以關注我的簡書賬號
正文
AVURLAsset
用于選項字典的鍵 - [AVURLAsset initWithURL:options:]
AVF_EXPORT NSString *const AVURLAssetPreferPreciseDurationAndTimingKey NS_AVAILABLE(10_7, 4_0);
Key名稱 | AVURLAssetPreferPreciseDurationAndTimingKey |
---|---|
函數解釋 | 指示asset 是否應準備好指示精確的持續時間并按時間提供精確的隨機訪問。此鍵的值是布爾類型的 NSNumber 。 |
備注 | 如果將nil 作為options 參數的值傳遞給- [AVURLAsset initWithURL:options:] ,或者如果傳遞缺少鍵AVURLAssetPreferPreciseDurationAndTimingKey 的值的字典,則假定默認值為NO 。如果僅打算播放asset ,因為當全精度不可用時,AVPlayer 將支持按時間進行近似隨機訪問,默認值為NO 就足夠了。如果在需要精確計時的情況下可以接受更長的加載時間,則通過 YES 。如果要將asset 插入AVMutableComposition ,通常需要精確的隨機訪問,建議使用YES 值。請注意,根據其容器格式的具體情況,此類精度可能需要在使用其任何部分的操作之前額外解析資源。許多容器格式提供了足夠的摘要信息以便精確計時,并且不需要額外的解析來準備它; QuickTime 電影文件和MPEG-4 文件是此類格式的示例。其他格式不提供足夠的摘要信息,只有在對文件內容進行初步檢查后才能對它們進行精確的隨機訪問。如果 asset``URL 引用的定時媒體資源無法獲得精確的持續時間和時間,則即使通過使用此key 請求精確計時,AVAsset.providesPreciseDurationAndTiming 也將為NO 。 |
AVF_EXPORT NSString *const AVURLAssetReferenceRestrictionsKey NS_AVAILABLE(10_7, 5_0);
Key名稱 | AVURLAssetReferenceRestrictionsKey |
---|---|
解釋 | 指示asset 在解析對外部媒體數據的引用時使用的限制。此鍵的值是包含AVAssetReferenceRestrictions 枚舉值的NSNumber 或多個此類值的邏輯組合。 |
備注 | 某些asset 可以包含對存儲在asset 容器文件外部的媒體數據的引用,例如在另一個文件中。這個key 可用于指定遇到這些引用時要使用的策略。如果asset 包含一個或多個參考限制禁止的類型的引用,則asset 屬性的加載將失敗。此外,此類asset 不能與其他AVFoundation 模塊一起使用,例如AVPlayerItem 或AVAssetExportSession 。 |
AVF_EXPORT NSString *const AVURLAssetHTTPCookiesKey API_AVAILABLE(ios(8.0), tvos(9.0)) API_UNAVAILABLE(macos) __WATCHOS_PROHIBITED;
Key名稱 | AVURLAssetHTTPCookiesKey |
---|---|
解釋 |
AVURLAsset 可以通過HTTP 請求發送的HTTP cookie 標準跨站點策略仍然適用: cookie 僅發送到它們適用的域。 |
備注 | 默認情況下,AVURLAsset 只能訪問客戶端默認cookie 存儲中的cookie 適用于 AVURLAsset 的URL 。你可以補充asset 可用的cookie 通過使用此初始化選項 HTTP cookie 不適用于非HTTP (S )URL 。在 HLS 中,許多HTTP 請求(例如,媒體,密鑰,變體索引)可以被發布到不同的路徑或主機。在這兩種情況下, HTTP 請求都將丟失任何不適用于AVURLAsset URL 的cookie 。此 init 選項允許AVURLAsset 為這些HTTP (S )請求使用其他HTTP``cookie 。 |
AVF_EXPORT NSString *const AVURLAssetAllowsCellularAccessKey API_AVAILABLE(ios(10.0), tvos(10.0)) API_UNAVAILABLE(macos) __WATCHOS_PROHIBITED;
Key名稱 | AVURLAssetAllowsCellularAccessKey |
---|---|
解釋 | 指示是否允許代表此asset 的網絡請求使用蜂窩接口。 |
備注 | 默認是 YES
|
AVURLAsset
+ (NSArray<AVFileType> *)audiovisualTypes NS_AVAILABLE(10_7, 5_0);
函數名 | audiovisualTypes |
---|---|
函數解釋 | 提供AVURLAsset 類可以理解的文件類型。 |
返回值 |
UTI 的NSArray 標識AVURLAsset 類可以理解的文件類型。 |
+ (NSArray<NSString *> *)audiovisualMIMETypes NS_AVAILABLE(10_7, 5_0);
函數名 | audiovisualMIMETypes |
---|---|
解釋 | 提供AVURLAsset 類可以理解的MIME 類型。 |
返回值 | 返回一個包含NSString 類型的NSArray 數組,其包含了MIME 類型的AVURLAsset 類 |
+ (BOOL)isPlayableExtendedMIMEType: (NSString *)extendedMIMEType NS_AVAILABLE(10_7, 5_0);
函數名 | isPlayableExtendedMIMEType: |
---|---|
函數解釋 | 如果asset 可以使用extendedMIMEType 中指定的編解碼器和容器類型播放,則返回YES 。否則返回NO 。 |
參數 | extendedMIMEType |
返回值 |
YES 或者是 NO 。 |
+ (instancetype)URLAssetWithURL:(NSURL *)URL options:(nullable NSDictionary<NSString *, id> *)options;
函數名 | URLAssetWithURL:options: |
---|---|
解釋 | 返回AVURLAsset 的實例以檢查媒體資源。 |
參數 |
URL :一個 NSURL 的實例,它引用媒體資源。options :一個 NSDictionary 的實例,包含用于指定AVURLAsset 初始化選項的鍵。請參閱上面的AVURLAssetPreferPreciseDurationAndTimingKey 和AVURLAssetReferenceRestrictionsKey 。 |
返回值 | 返回一個AVURLAsset 的實例。 |
- (instancetype)initWithURL:(NSURL *)URL options:(nullable NSDictionary<NSString *, id> *)options NS_DESIGNATED_INITIALIZER;
函數名 | initWithURL:options: |
---|---|
解釋 | 初始化AVURLAsset 的實例以檢查媒體資源。 |
參數 |
URL :一個 NSURL的 實例,它引用媒體資源。options :一個 NSDictionary 的實例,包含用于指定AVURLAsset 初始化選項的鍵。請參閱上面的AVURLAssetPreferPreciseDurationAndTimingKey 和AVURLAssetReferenceRestrictionsKey 。 |
返回值 | 一個AVURLAsset 的實例。 |
@property (nonatomic, readonly, copy) NSURL *URL;
表示初始化AVURLAsset
實例的URL
AVURLAssetURLHandling
@property (nonatomic, readonly) AVAssetResourceLoader *resourceLoader NS_AVAILABLE(10_9, 6_0);
提供對AVAssetResourceLoader
實例的訪問,該實例提供對在asset
上執行操作(例如playback
)過程中可能加載的URL
處理的有限控制。
無法通過使用AVAssetResourceLoader
來調解文件URL
的加載。
請注意,
AVAsset
的副本將提供相同的AVAssetResourceLoader
實例。
AVURLAssetCache
@property (nonatomic, readonly, nullable) AVAssetCache *assetCache NS_AVAILABLE(10_12, 10_0);
提供對AVAssetCache
實例的訪問,以用于檢查本地緩存的媒體數據。如果asset
尚未配置為存儲或訪問磁盤中的媒體數據,則為nil
。
AVAssetCompositionUtility
- (nullable AVAssetTrack *)compatibleTrackForCompositionTrack:(AVCompositionTrack *)compositionTrack;
函數名 | compatibleTrackForCompositionTrack: |
---|---|
解釋 | 提供對任何timeRange 的目標的AVAssetTrack 的引用。可以插入到可變組合 track 中(通過 - [AVMutableCompositionTrack insertTimeRange:ofTrack:atTime:error:] )。 |
參數 |
compositionTrack :要求兼容的 AVAssetTrack 的合成track 。 |
返回值 | 返回一個AVAssetTrack 的實例 |
備注 | 查找具有指定合成軌跡可容納的內容的目標track 。- [AVMutableComposition mutableTrackCompatibleWithTrack:] 的邏輯補充。 |
AVAsset change notifications
AVF_EXPORT NSString *const AVAssetDurationDidChangeNotification NS_AVAILABLE(10_11, 9_0);
通知名稱 | AVAssetDurationDidChangeNotification |
---|---|
解釋 |
AVFragmentedAsset 的持續時間在被AVFragmentedAssetMinder 調整時發生變化時發布,但僅適用于@“duration” 的狀態達到AVKeyValueStatusLoaded 后發生的更改。 |
AVF_EXPORT NSString *const AVAssetContainsFragmentsDidChangeNotification API_AVAILABLE(macos(10.11), ios(12.0), tvos(12.0)) API_UNAVAILABLE(watchos);
通知名稱 | AVAssetContainsFragmentsDidChangeNotification |
---|---|
解釋 | 在@“containsFragments” 的值已經被加載并且AVFragmentedAsset 被添加到AVFragmentedAssetMinder 之后發布,或者當值為1 的時候)在磁盤上的asset 中檢測到片段之后它沒有被檢測到或者當值為2 的時候)沒有檢測到片段時之前包含一個或多個asset 的磁盤上的asset 。 |
AVF_EXPORT NSString *const AVAssetWasDefragmentedNotification API_AVAILABLE(macos(10.11), ios(12.0), tvos(12.0)) API_UNAVAILABLE(watchos);
通知名稱 | AVAssetWasDefragmentedNotification |
---|---|
解釋 | 在AVFragmentedAssetMinder 正在調整AVFragmentedAsset 時對磁盤上的asset 進行碎片整理時發布,但僅在@“canContainFragments” 的值狀態達到AVKeyValueStatusLoaded 之后進行碎片整理時才會發布。 |
備注 | 發布此通知后,asset 屬性canContainFragments 和containsFragments 的值都將為NO 。 |
AVF_EXPORT NSString *const AVAssetChapterMetadataGroupsDidChangeNotification NS_AVAILABLE(10_11, 9_0);
通知名稱 | AVAssetChapterMetadataGroupsDidChangeNotification |
---|---|
解釋 | 當表示AVAsset``capture 的定時元數據組數組的集合發生更改以及定時元數據組的任何內容發生更改時發布,但僅適用于@“availableChapterLocales” 值的狀態達到AVKeyValueStatusLoaded 后發生的更改。 |
AVF_EXPORT NSString *const AVAssetMediaSelectionGroupsDidChangeNotification NS_AVAILABLE(10_11, 9_0);
通知名稱 | AVAssetMediaSelectionGroupsDidChangeNotification |
---|---|
解釋 | 當AVAsset 提供的媒體選擇組集合發生更改以及其媒體選擇組的任何內容發生更改時發布,但僅適用于@“availableMediaCharacteristicsWithMediaSelectionOptions” 值的狀態達到AVKeyValueStatusLoaded 后發生的更改。 |
AVFragmentMinding代理方法
@property (nonatomic, readonly, getter=isAssociatedWithFragmentMinder) BOOL associatedWithFragmentMinder API_AVAILABLE(macos(10.11), ios(12.0), tvos(12.0)) API_UNAVAILABLE(watchos);
代理名稱 | associatedWithFragmentMinder |
---|---|
解釋 | 指示支持片段管理的AVAsset 當前是否與片段管理器相關聯,例如, AVFragmentedAssetMinder 的一個實例。 |
備注 | 支持片段管理的AVAssets 僅在與片段管理器關聯時發布更改通知。 |
AVFragmentedAsset
+ (instancetype)fragmentedAssetWithURL:(NSURL *)URL options:(nullable NSDictionary<NSString *, id> *)options;
函數名稱 | fragmentedAssetWithURL:options: |
---|---|
解釋 | 返回AVFragmentedAsset 的實例,以檢查碎片化的媒體資源。 |
參數 |
URL :一個 NSURL 的實例,它用來引用媒體資源。options :一個 NSDictionary 的實例,包含用于指定AVFragmentedAsset 初始化選項的鍵。請參閱上面的AVURLAssetPreferPreciseDurationAndTimingKey 和AVURLAssetReferenceRestrictionsKey 。 |
返回值 | 一個AVFragmentedAsset 的實例。 |
@property (nonatomic, readonly) NSArray<AVFragmentedAssetTrack *> *tracks;
屬性名稱 | tracks |
---|---|
解釋 |
asset 中的track
|
備注 | 此屬性的值是asset 包含的track 數組;track 的類型為AVFragmentedAssetTrack 。 |
AVFragmentedAssetTrackInspection
- (nullable AVFragmentedAssetTrack *)trackWithTrackID:(CMPersistentTrackID)trackID;
函數名稱 | trackWithTrackID: |
---|---|
解釋 | 提供AVFragmentedAssetTrack 的實例,該實例表示指定trackID 的track 。 |
參數 |
trackID :請求的 AVFragmentedAssetTrack 的trackID 。 |
返回值 |
AVFragmentedAssetTrack 的一個實例;如果沒有指定trackID 的跟蹤可用,則可以為nil 。 |
備注 | 當加載了key``@“tracks” 時,變為可調用而不會阻塞狀態 |
- (NSArray<AVFragmentedAssetTrack *> *)tracksWithMediaType:(AVMediaType)mediaType;
函數名 | tracksWithMediaType: |
---|---|
解釋 | 提供asset 的AVFragmentedAssetTracks 數組,以呈現指定媒體類型的媒體。 |
參數 |
mediaType :接收器過濾其 AVFragmentedAssetTracks 的媒體類型。 (媒體類型在AVMediaFormat.h 中定義) |
返回值 |
AVFragmentedAssetTracks 的NSArray ;如果沒有指定媒體類型的曲目可用,則可能為nil 。 |
備注 | 當加載了key``@“tracks” 時,變為可調用而不會阻塞狀態 |
- (NSArray<AVFragmentedAssetTrack *> *)tracksWithMediaCharacteristic:(AVMediaCharacteristic)mediaCharacteristic;
函數名 | tracksWithMediaCharacteristic: |
---|---|
解釋 | 提供asset 的AVFragmentedAssetTracks 數組,以呈現具有指定特征的媒體。 |
參數 |
mediaCharacteristic :接收器過濾其 AVFragmentedAssetTracks 的媒體特性。 (媒體特征在AVMediaFormat.h 中定義) |
返回值 |
AVFragmentedAssetTracks 的NSArray ;如果沒有具有指定特征的曲目可用,則可能為空。 |
備注 | 當加載了key``@“tracks” 時,變為可調用而不會阻塞狀態 |
AVFragmentedAssetMinder
+ (instancetype)fragmentedAssetMinderWithAsset:(AVAsset<AVFragmentMinding> *)asset mindingInterval:(NSTimeInterval)mindingInterval;
函數名稱 | fragmentedAssetMinderWithAsset:mindingInterval: |
---|---|
解釋 | 創建AVFragmentedAssetMinder ,將指定的asset 添加到其中,并將mindingInterval 設置為指定的值。 |
參數 |
asset :要添加到 AVFragmentedAssetMinder 的AVFragmentedAsset 實例mindingInterval :AVFragmentedAssetMinder 的初始調度間隔。 |
返回值 | 返回一個AVFragmentedAssetMinder 的新實例。 |
- (instancetype)initWithAsset:(AVAsset<AVFragmentMinding> *)asset mindingInterval:(NSTimeInterval)mindingInterval;
函數名稱 | initWithAsset:mindingInterval: |
---|---|
解釋 | 創建AVFragmentedAssetMinder ,將指定的asset 添加到其中,并將mindingInterval 設置為指定的值。 |
參數 |
asset :要添加到 AVFragmentedAssetMinder 的AVFragmentedAsset 實例mindingInterval :AVFragmentedAssetMinder 的初始調度間隔。 |
返回值 | 返回一個AVFragmentedAssetMinder 的新實例。 |
@property (nonatomic) NSTimeInterval mindingInterval;
NSTimeInterval
,指示應檢查其他片段的頻率。默認時間間隔為10.0
。
@property (nonatomic, readonly) NSArray<AVAsset<AVFragmentMinding> *> *assets;
成為minded
AVFragmentedAsset
對象的NSArray
。
- (void)addFragmentedAsset:(AVAsset<AVFragmentMinding> *)asset;
函數名稱 | addFragmentedAsset: |
---|---|
解釋 | 將碎片asset 添加到正在構建的asset 數組中。 |
參數 |
asset :要添加到 minder 的碎片asset 。 |
- (void)removeFragmentedAsset:(AVAsset<AVFragmentMinding> *)asset;
函數名稱 | removeFragmentedAsset: |
---|---|
解釋 | 從成為minded 的asset 數組中刪除碎片asset 。 |
參數 |
asset :從 minder 中刪除的零碎asset 。 |
AVURLAssetContentKeyEligibility
@property (nonatomic, readonly) BOOL mayRequireContentKeysForMediaDataProcessing API_AVAILABLE(macos(10.12.4), ios(10.3), tvos(10.2), watchos(3.3));
允許將AVURLAsset
作為內容key
recipient
添加到AVContentKeySession
。
上一章 | 目錄 | 下一章 |
---|