AVPlayer(二)AVAsset
生活随笔
收集整理的這篇文章主要介紹了
AVPlayer(二)AVAsset
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
https://www.sunyazhou.com/2017/06/16/Learning-AV-Foundation-AVAsset-Basic/?utm_source=tuicool&utm_medium=referral
AVAsset?專(zhuān)輯
一個(gè)抽象類(lèi),里面包含曲目、格式、時(shí)長(zhǎng), 以及元數(shù)據(jù)NSData(二進(jìn)制的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];//根據(jù)相應(yīng)的屬性狀態(tài)進(jìn)行對(duì)應(yīng)的處理switch (tracksStatus) {case AVKeyValueStatusUnknown://TODObreak;case AVKeyValueStatusLoading://TODObreak;case AVKeyValueStatusLoaded://TODObreak;case AVKeyValueStatusFailed://TODObreak;case AVKeyValueStatusCancelled://TODObreak;} }];AVAssetTrack?曲目
我們真正存儲(chǔ)媒體資源的統(tǒng)一媒體類(lèi)型。
- 音頻流
- 視頻流
AVAssetImageGenerator
- (instancetype)initWithAsset:(AVAsset *)asset NS_DESIGNATED_INITIALIZER;//獲取一張圖片,requestedTime 指定要獲取視頻中哪個(gè)時(shí)刻的圖片,actualTime 返回圖片實(shí)際是視頻的哪個(gè)時(shí)刻,outError 返回錯(cuò)誤信息 - (nullable CGImageRef)copyCGImageAtTime:(CMTime)requestedTime actualTime:(nullable CMTime *)actualTime error:(NSError * _Nullable * _Nullable)outError CF_RETURNS_RETAINED;//獲取多張圖片,每一次圖片生成后,都會(huì)調(diào)用一次 handler - (void)generateCGImagesAsynchronouslyForTimes:(NSArray<NSValue *> *)requestedTimes completionHandler:(AVAssetImageGeneratorCompletionHandler)handler;//上述 handler 的類(lèi)型如下,回調(diào)中的參數(shù)有圖片的請(qǐng)求時(shí)刻和實(shí)際時(shí)刻,圖片,狀態(tài)(成功、失敗、取消),錯(cuò)誤信息 typedef void (^AVAssetImageGeneratorCompletionHandler)(CMTime requestedTime, CGImageRef _Nullable image, CMTime actualTime, AVAssetImageGeneratorResult result, NSError * _Nullable error);?
總結(jié)
以上是生活随笔為你收集整理的AVPlayer(二)AVAsset的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 利用bitmap处理海量数据问题:43亿
- 下一篇: hacker.2