AVFoundation介绍

430 阅读1分钟

AVAsset

//视频时长
@property (nonatomic, readonly) CMTime duration;
//默认的速度
@property (nonatomic, readonly) float preferredRate;
//默认音量
@property (nonatomic, readonly) float preferredVolume;

//包含着当前视频常见格式类型的元数据
@property (nonatomic, readonly) NSArray<AVMetadataItem *> *commonMetadata;
//包含当前视频所有格式类型的元数据
@property (nonatomic, readonly) NSArray<AVMetadataItem *> *metadata;

//包含当前视频所有可用元数据的格式类型元数据的格式类型在AVMetadataFormat中定义了很多种,常见的有title、creator、subject、publisher等
@property (nonatomic, readonly) NSArray<NSString *> *availableMetadataFormats;

//此资源中包含的所有曲目(AVAssetTrack),AVAsset还可以通过标识符,媒体类型或媒体特征等信息找到相应的曲目.
@property (nonatomic, readonly) NSArray*tracks;

//通过trackID获得trackAVAssetTrack
-(nullable AVAssetTrack *)trackWithTrackID:(CMPersistentTrackID)trackID;

//通过指定的媒体类型返回一个AVAssetTrack数组,数组中包含着Asset中所有指定媒体类型的AVAssetTrack。如果Asset中没有这个媒体类型的AVAssetTrack,返回一个空数组
-(NSArray<AVAssetTrack *> *)tracksWithMediaType:(NSString *)mediaType;

//通过指定的媒体特征返回AVAssetTrack数组,数组的特性与-tracksWithMediaType:类似,如果Asset中没有这个媒体特征的AVAssetTrack,返回一个空数组。
-(NSArray<AVAssetTrack *> *)tracksWithMediaCharacteristic:(NSString *)mediaCharacteristic;`

AVFoundation中重点类的E-R图

classDiagram
AVAsset
AVAsset <|-- Fish
AVAsset <|-- Zebra
AVAsset : -NSArray<AVAssetTrack *> *tracks
AVAsset : +String gender
AVAsset: +isMammal()
AVAsset: +mate()
class AVAssetTrack{
-weak AVAsset *asset
+swim()
+quack()
}
class Fish{
-int sizeInFeet
-canEat()
}
class Zebra{
+bool is_wild
+run()
}