我在播放几个视频后收到此错误:

Error Domain=AVFoundationErrorDomain Code=-11819 "Cannot Complete Action" UserInfo=0x1d83a7f0 {NSLocalizedRecoverySuggestion=Try again later., NSLocalizedDescription=Cannot Complete Action}

我的播放功能如下所示:
- (void)playItem:(AVPlayerItem*)item
  playerView:(PlayerView*)playerView
     doReset:(BOOL)reset
{
// if it's different item or we want to reset then replace item and rewind player to zero
if([player currentItem] != item || reset)
{
    [player pause];
    [player replaceCurrentItemWithPlayerItem:item];
    [player seekToTime:kCMTimeZero];
}

// set the view's player
[playerView setPlayer:player];

[player play];

播放器只有几百次尝试才停止工作。
我有5个PlayerView,其中有5个将在播放时播放的视频。为了弄清楚这个错误(仅通过查看AVPlayer实例错误属性),我必须多次触摸这些按钮(就像之前提到的几百次到上千次)。
我尝试了各种方法来解决此问题,但没有成功。我知道,如果我添加此行 [playerView setVideoFillMode:AVLayerVideoGravityResizeAspectFill] 会使此错误提早出现(最多200次)。
我还没有尝试过使用单个PlayerView来为每个按钮重用,但是将来我将不得不同时播放多个视频,并且我认为一段时间后会出现这个问题。
谷歌搜索此错误或枯萎的搜索StackOverflow至今没有给我带来任何解决方案。

有人遇到过类似的问题吗?发生在带有ARC的iOS5或iOS6(不针对波纹管5)中。

提前致谢

最佳答案

我没有设置尝试使用您的代码的权限,但是您是否尝试过将replaceCurrentItemWithPlayerItem:包装在@autoreleasepool中以强制ARC进行清理?

或者,您是否通过乐器检查了分配?

根据您的描述,这听起来很像泄漏。您可能在AVPlayer中发现了一个错误(我怀疑这是您所进行的锻炼的一种!),如果是这样,则绝对应该使用file a bug with Apple,但是您可以采取一些措施来解决。

您是否有理由要继续重复使用同一播放器?您是否尝试过抛弃旧播放器并创建新播放器,而不是replaceCurrentItemWithPlayerItem:

让我们知道乐器分配显示的内容。我敢打赌,这是深入了解这一问题的关键。

10-07 20:28