gpt4 book ai didi

iphone - 重新加载 AVMutableComposition

转载 作者:可可西里 更新时间:2023-11-01 04:40:25 25 4
gpt4 key购买 nike

我有一个与 AVPlayer 关联的 AVMutableComposition。似乎如果我将轨道添加到这个组合中,AVPlayer 不会播放添加的轨道,除非我再次在播放器上设置组合。现在我只是通过用已经设置的相同构图替换当前项目来做到这一点。之后,它会拾取新轨道。

我一直无法弄清楚这是否是正确的做法,这样做似乎有点奇怪。

有什么想法吗?

谢谢

最佳答案

基本上虽然它是可变的组合,但苹果建议创建一个不可变的组合并创建 AVPlayerItem 用于播放目的。这有点烦人,但你可以绕过它。当您想要刷新视频时,只需采样时间,创建另一个 AVPlayerItem 并将其加载到正确的时间。

这是来自 Apple 的 AVMutableComposition 文档的片段

AVMutableComposition is a mutable subclass of AVComposition you use when you want to create a new composition from existing assets. You can add and remove tracks, and you can add, remove, and scale time ranges.

You can make an immutable snapshot of a mutable composition for playback or inspection as follows:

AVMutableComposition *myMutableComposition =
<#a mutable composition you want to inspect or play in its current state#>;

AVComposition *immutableSnapshotOfMyComposition = [myMutableComposition copy];

// Create a player to inspect and play the composition.
AVPlayerItem *playerItemForSnapshottedComposition =
[[AVPlayerItem alloc] initWithAsset:immutableSnapshotOfMyComposition];

更多信息:Full Document

关于iphone - 重新加载 AVMutableComposition,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8994560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com