AVPlayer“无法完成操作”

问题描述:

即时得到这个错误播放多种视频后:AVPlayer“无法完成操作”

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实例错误属性),我必须触摸这些按钮severl时间(如之前提到它从几百到几千次)。 我试过各种东西来解决这个问题,但没有成功。我知道,如果我添加此行[playerView setVideoFillMode:AVLayerVideoGravityResizeAspectFill]将使此错误提前(bebore 200倍)。 我没有尝试过的是使用单个PlayerView,它将被重复用于每个按钮,但我将不得不在未来同时播放多个视频,并且我认为它会在一段时间后带出这个问题。 谷歌搜索这个错误或枯萎搜索*到目前为止没有给我带来任何解决方案。

有没有人遇到过这种问题?它发生在iOS5或iOS6(不针对波纹管5)与ARC。

在此先感谢

+0

听起来吓人! – rajneesh 2013-02-12 05:32:36

+1

嗨@alamatula,我面临同样的问题,你是否曾经找到解决这个问题的办法? – vnaren001 2015-08-08 11:27:06

我没有建立来试试你的代码,但你有没有试过在@autoreleasepool包装replaceCurrentItemWithPlayerItem:迫使ARC做一些清理工作?

或者,你有没有通过仪器检查分配?

从您的描述来看,听起来很像泄漏。你可能已找到AVPlayer(我怀疑它已经得到了你给它的练习!)的错误,如果是这样,你应该肯定file a bug with Apple,但可能有一些事情可以做,以解决您的问题。

是否有你想继续重复使用同一个玩家的理由?你是否尝试抛弃旧牌手并创造新牌,而不是replaceCurrentItemWithPlayerItem:

让我们知道仪器分配显示。我敢打赌,这是实现这一目标的关键。