AVAsset

AVAsset 是一个抽象的,不可变的类,模拟的视频和声音等视听媒体。一个资源可以包含一个或者多个轨道,目的是用来一起呈现和加工。一个完整的媒体类型不限于音频、视频、文本、关闭字幕,字幕。

概览

AVAsset 定义了组成资源的轨道的共同属性。你可以通过 AVAssetTrack 实例对象访问 轨道集合呈现(代表)的轨道。根据你的需要,你也可以对每一个轨道资源进行独立检查。

你经常使用的是 AVURLAsset ,AVAssest 具体的子类实例,使用 url 引用的视觉媒体资源,例如 流(包括HTTP live流), quickTime 媒体文件,MP3 文件,和另一些类型的文件。您还可以使用其他具体子类实例化一个资产, 用来扩展基本视觉音频模型的有用的方式。AVComposition为时间编辑。

资源的属性作为一个整体被定义在 AVAsset 中,此外,引用的实例AVAssetTrack代表轨道集合中的轨道, 每一个都可以单独检查。

符号

创建一个资源:

// 返回一个用来检查的媒体资源
/*
    url : 媒体资源的引用
    返回值: 一个 AVAsset 的具体子类(AVURLAsset)
*/
init(url: URL)

// objc
+ assetWithURL:

参考: Media Playback Programming Guide

加载数据:

// 取消正在加载的所有的值
func cancelLoading()

- (void)cancelLoading;

检查一个资源

// 资源的持续时间(音视频资源的时长)
var duration: CMTime

// 提供精确的时间和时机
var providesPreciseDurationAndTiming: Bool

// 资源的创建时间
var creationDate: AVMetadataItem?

// 偏好速度(资源用来播放的自然速度)
var preferredRate: Float

// 偏好的形变(提供给呈现或处理的资源)
var preferredTransform: CGAffineTransform

// 偏好的音量(这个值总是会变,不总是1 )
var preferredVolume: Float

确定可用性(Determining Usability

可用性属性有一个值为true时,表示操作可以执行,即使是真正的一组特定的条件下。例如:isPlayable的值是true ,即使资产保护的内容和需要特别授权使用,甚至在这之前授权。同样,isExportable的值是true的,即使只能使用一些AVAssetExportSession预设。这些属性将只返回false当没有条件可以执行相关的操作。

访问轨道(Accessing Tracks)

// 获取资源包含的轨道资源的集合
var tracks: [AVAssetTrack]

// 获取资源包含的轨道资源组的集合
var trackGroups: [AVAssetTrackGroup]

// 获取指定轨道 id 的轨道
func track(withTrackID: CMPersistentTrackID)

// 根据媒体类型来获取指定的轨道集合
func tracks(withMediaType: String)

// 根据媒体资源的特征来获取轨道集合
func tracks(withMediaCharacteristic: String)

// 获取未使用的轨道 id
func unusedTrackID()

访问元数据

// 资产在当前语音环境的歌词
var lyrics: String?

// 获取可用的元数据数组
var metadata: [AVMetadataItem]

// 常见的元数据
var commonMetadata: [AVMetadataItem]

// 可用的元数据格式
var availableMetadataFormats: [String]

// 获取指定格式的元数据
func metadata(forFormat: String)

元数据使用章节

var availableChapterLocales: [Locale]

func chapterMetadataGroups(withTitleLocale: Locale, containingItemsWithCommonKeys: [String]?)

func chapterMetadataGroups(bestMatchingPreferredLanguages: [String])

results matching ""

    No results matching ""