iOS:AVQueuePlayer / AVPlayerItem'一个AVPlayerItem一次只能占用一个玩家队列中的一个位置。

时间:2013-10-27 19:04:59

标签: ios objective-c cocoa-touch avplayer avqueueplayer

我一直收到这个错误:

  

'AVPlayerItem只能在a的队列中占据一个位置   时间'。

我对球员项目进行了NSLog,但他们似乎都不相同。此外,我添加了这个以确定:

if([player canInsertItem:itemToAdd afterItem:nil])
 [player insertItem:itemToAdd afterItem:nil];

当我不确定这是否可行时(在不同的内存位置可以有两个相同的项目)我写了一个类别方法来测试一个玩家是否包含一个项目或与之相同的东西。然而,我仍然得到错误。

我看过很多人用MPMoviePlayerController收到这个错误的帖子,但是我没有使用那个自定义类,只是开箱即用的AVQueuePlayer。

有关如何解决此问题的任何想法?

3 个答案:

答案 0 :(得分:0)

similar question

它没有一个公认的答案,但似乎很多人都有同样的问题 另请参阅Apple Dev Forum的this post

答案 1 :(得分:0)

我在这里回答了这个问题:ANSWER TO QUESTION

尽管它在Swift中,但不是Obj-C,它仍然适用。这是由于播放器项目的状态所致。

答案 2 :(得分:0)

我遇到了类似的问题。您可能已经将AVPlayerLooper和AVQueuePlayer一起使用了?在说明中说:

指定的AVPlayerItem将用作模板,以生成至少3个AVPlayerItem副本,并将这些副本插入到指定的AVQueuePlayer的播放队列中,以完成循环播放。

在那种情况下,当您调用诸如replaceCurrentItem之类的函数时,可能会发生错误。

目前,我只能猜测导致这种错误的原因,我将在完成进一步的测试后进行更新。