AVPlayer(二)AVAsset
生活随笔
收集整理的這篇文章主要介紹了
AVPlayer(二)AVAsset
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
https://www.sunyazhou.com/2017/06/16/Learning-AV-Foundation-AVAsset-Basic/?utm_source=tuicool&utm_medium=referral
AVAsset?專輯
一個抽象類,里面包含曲目、格式、時長, 以及元數據NSData(二進制的bytes).
@property (nonatomic, readonly) NSArray<AVAssetTrack *> *tracks;加載格式
AVURLAsset *anAsset = [[AVURLAsset alloc] initWithURL:url options:nil]; NSArray *keys = @[@"duration",@"tracks"];[asset loadValuesAsynchronouslyForKeys:keys completionHandler:^() {NSError *error = nil;AVKeyValueStatus tracksStatus = [asset statusOfValueForKey:@"tracks" error:&error];//根據相應的屬性狀態進行對應的處理switch (tracksStatus) {case AVKeyValueStatusUnknown://TODObreak;case AVKeyValueStatusLoading://TODObreak;case AVKeyValueStatusLoaded://TODObreak;case AVKeyValueStatusFailed://TODObreak;case AVKeyValueStatusCancelled://TODObreak;} }];AVAssetTrack?曲目
我們真正存儲媒體資源的統一媒體類型。
- 音頻流
- 視頻流
AVAssetImageGenerator
- (instancetype)initWithAsset:(AVAsset *)asset NS_DESIGNATED_INITIALIZER;//獲取一張圖片,requestedTime 指定要獲取視頻中哪個時刻的圖片,actualTime 返回圖片實際是視頻的哪個時刻,outError 返回錯誤信息 - (nullable CGImageRef)copyCGImageAtTime:(CMTime)requestedTime actualTime:(nullable CMTime *)actualTime error:(NSError * _Nullable * _Nullable)outError CF_RETURNS_RETAINED;//獲取多張圖片,每一次圖片生成后,都會調用一次 handler - (void)generateCGImagesAsynchronouslyForTimes:(NSArray<NSValue *> *)requestedTimes completionHandler:(AVAssetImageGeneratorCompletionHandler)handler;//上述 handler 的類型如下,回調中的參數有圖片的請求時刻和實際時刻,圖片,狀態(成功、失敗、取消),錯誤信息 typedef void (^AVAssetImageGeneratorCompletionHandler)(CMTime requestedTime, CGImageRef _Nullable image, CMTime actualTime, AVAssetImageGeneratorResult result, NSError * _Nullable error);?
總結
以上是生活随笔為你收集整理的AVPlayer(二)AVAsset的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用bitmap处理海量数据问题:43亿
- 下一篇: hacker.2