AVPlayer"无法完成动作"

ala*_*ula 9 avfoundation ios avplayer ios5

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

Error Domain=AVFoundationErrorDomain Code=-11819 "Cannot Complete Action" UserInfo=0x1d83a7f0 {NSLocalizedRecoverySuggestion=Try again later., NSLocalizedDescription=Cannot Complete Action}
Run Code Online (Sandbox Code Playgroud)

我的播放功能如下:

- (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];
Run Code Online (Sandbox Code Playgroud)

玩家只有在几百次尝试后才停止工作.我有5个PlayerView是5个视频,当被触摸时将播放.为了达到我得到这个错误的点(仅通过查看AVPlayer实例错误属性),我必须触摸这些按钮次数(就像之前提到的几百到几千次).我已经尝试过各种各样的东西来解决这个问题,但没有成功.我知道,如果我添加这一行[playerView setVideoFillMode:AVLayerVideoGravityResizeAspectFill]将使这个错误提前到来(bebore 200次).我没有尝试的是使用单个PlayerView将重复使用每个按钮,但我将来必须同时播放多个视频,我认为它会在一段时间后出现这个问题.谷歌搜索此错误或搜索StackOverflow到目前为止没有给我带来任何解决方案.

有没有人遇到过这些问题?它发生在使用ARC的iOS5或iOS6(不是针对下面的5)中.

提前致谢

Oli*_*lie 1

我没有准备好尝试您的代码,但是您是否尝试过replaceCurrentItemWithPlayerItem:强制@autoreleasepoolARC 进行一些清理?

或者,您是否通过仪器检查过分配情况?

从你的描述来看,这很像是泄漏。您可能发现了一个错误AVPlayer(我怀疑它是否得到了您所给予的那种练习!),如果是这样,您绝对应该向 Apple 提交错误,但您可能可以采取一些措施来解决。

您想继续重复使用同一个播放器有什么原因吗?您是否尝试过抛弃旧的播放器并创建一个新的播放器,而不是replaceCurrentItemWithPlayerItem:

让我们知道工具分配显示了什么。我敢打赌这是查清真相的关键。