我有一个与AVPlayer关联的AVMutableComposition。
如果我将轨道添加到此合成中,除非再次在播放器上设置该合成,否则AVPlayer不会播放添加的轨道。现在,我只是通过使用已设置的相同组成替换当前项目来做到这一点。之后,它将选择新的轨道。
我一直无法弄清楚这是否是正确的方法,以这种方式似乎有点奇怪。
有任何想法吗?
谢谢
最佳答案
基本上,尽管它是可变的合成,但是苹果建议创建一个不可变的合成并创建AVPlayerItem以进行播放。这有点烦人,但您可以解决它。当您要刷新视频时,只需采样时间,即可创建另一个AVPlayerItem并将其加载到正确的时间。
这是苹果的AVMutableComposition文档的摘录
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/