我在播放几个视频后收到此错误:
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:
?
让我们知道乐器分配显示的内容。我敢打赌,这是深入了解这一问题的关键。