播放多个视频后我收到此错误:
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] 将使这个错误提前到来(bebore 200次)。 我没有尝试的是使用单个PlayerView将重复使用每个按钮,但我将来必须同时播放多个视频,我认为它会在一段时间后出现这个问题。 谷歌搜索这个错误或者搜索StackOverflow到目前为止没有给我带来任何解决方案。
有没有人遇到过这样的问题?它发生在使用ARC的iOS5或iOS6(不是针对下面的5)中。
提前致谢
答案 0 :(得分:1)
我没有设置试用您的代码,但您是否尝试在replaceCurrentItemWithPlayerItem:
中包装@autoreleasepool
以强制ARC进行一些清理?
或者,您是否通过仪器检查了分配?
根据您的描述,这听起来很像泄漏。你可能在AVPlayer
中发现了一个错误(我怀疑它是否得到了你正在给予的那种运动!),如果是这样,你绝对应该{ {3}},但可能有一些事情可以解决。
您是否有理由继续重复使用同一个播放器?您是否尝试过抛弃旧玩家并创建一个新玩家,而不是replaceCurrentItemWithPlayerItem:
?
让我们知道Instruments-Allocations显示的内容。我打赌这是解决这个问题的关键。