2

AVAssetReader 很棒,但我只能看到如何将它与本地资产、文件或我猜的组合一起使用,

所以,

assetReader = try AVAssetReader(asset: self.asset)
...
assetReader.addOutput(readerOutput)

等等,

假设您有一个到达的流

(也许是 Apple 的 .M3U8 文件示例,

在此处输入图像描述

https://developer.apple.com/streaming/examples/

实际上,AVAssetReader 可以用于流吗?还是只有本地文件?

我只是在任何地方都找不到这个解释。(如果您更熟悉它,也许很明显。:/)

4

1 回答 1

3

这并不明显。将两者的头文件注释拼凑在一起,AVAssetReader给人AVComposition一种仅为本地资产设计的 API 的强烈印象,尽管该语言并未明确排除非本地资产。

从头AVAssetReader文件:

AVAssetReader 的实例从 AVAsset 的实例读取媒体数据,无论资产是基于文件的还是表示来自多个源的媒体数据的组合,如 AVComposition 的情况。

并从AVComposition

AVComposition 将来自多个基于本地文件的源的媒体数据以自定义的时间安排组合在一起,以便一起呈现或处理来自多个源的媒体数据。无论容器类型如何,所有基于本地文件的视听资产都可以合并。

如果您只对视频感兴趣,并且不介意将处理作为播放的一部分,您可以通过AVPlayerItemVideoOutputAVPlayerItem. 如果你对音频感兴趣,那你就上岸了。

于 2018-12-15T22:02:21.503 回答