2013-02-11 20 views
8

Im получаю эту ошибку после игры несколько видео: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), я должен прикасаться к этим кнопкам в течение нескольких раз (как упоминалось ранее, до того, как он перейдет от нескольких сотен до тысячи раз). Я пробовал всевозможные вещи, чтобы исправить это, но без успеха. Я знаю, что если я добавлю эту строку [playerView setVideoFillMode: AVLayerVideoGravityResizeAspectFill] сделает эту ошибку ранней (bebore 200 раз). Что я еще не пробовал - это использовать один PlayerView, который будет использоваться повторно для каждой кнопки, но в будущем мне придется воспроизводить несколько видео одновременно, и я думаю, что это вызовет эту проблему через некоторое время , Ошибка при запуске этой ошибки или пересохшего поиска. StackOverflow пока не приносил мне никаких решений.

Кто-нибудь испытывает эти проблемы? Это происходит либо в iOS5, либо в iOS6 (без таргетинга ниже 5) с ARC.

Заранее спасибо

+0

звучит страшно !! – rajneesh

+1

Привет @alamatula, я столкнулся с той же проблемой, вы когда-нибудь находили решение этой проблемы? – vnaren001

ответ

1

Я не установлен, чтобы попытаться код, но вы пробовали обертывания replaceCurrentItemWithPlayerItem: в @autoreleasepool, чтобы заставить ARC сделать некоторые очистки?

В качестве альтернативы, вы проверили распределения через инструменты?

Из вашего описания это звучит очень похоже на утечку. Вы могут обнаружили ошибку в AVPlayer (я сомневаюсь, что это получило такое упражнение, которое вы даете ей!), И если да, то обязательно должно быть file a bug with Apple, но могут быть некоторые вещи, которые вы можете сделать, чтобы обойти.

Есть ли причина, по которой вы хотите продолжать повторное использование одного и того же игрока? Вы пытались перекопать старого игрока и создать новый, а не replaceCurrentItemWithPlayerItem:?

Дайте нам знать, что показывает Instruments-Allocations. Бьюсь об заклад, это ключ к достижению этой цели.

Смежные вопросы