Приостановка AVPlayer на данный CMTime - PullRequest
0 голосов
/ 11 января 2012

Я пишу приложение для iOS 4.3 и выше и использую automatic reference counting.У меня есть видео, которое воспроизводится с использованием AVPlayer, и я хотел бы иметь возможность сделать паузу в этом видео, когда достигнут определенный CMTime.В настоящее время я использую addBoundaryTimeObserverForTimes и приостанавливаю AVPlayer внутри block, который вызывается.Это работает, но я получаю ошибку:

Capturing 'self' strongly in this block is likely to lead to a retain cycle

Мой код:

timeObserver = [player addBoundaryTimeObserverForTimes:endTime //An array of one NSValue representing a CMTime
                                                 queue:NULL 
                                            usingBlock:^{
                                                            [player pause];
                                                        }];

Я не могу найти правильный способ сделать это и был бы очень признателен за любую помощь.

Спасибо!

1 Ответ

0 голосов
/ 11 января 2012

Вам нужно будет использовать __weak-декоратор хранилища.
Например, поместите это перед вашим кодом блока:

__weak MYClass* blockSelf = self;

и используйте blockSelf вместо self внутри вашего блока.

Обновление
Только что нашел этот отличный ответ здесь, на SO: https://stackoverflow.com/a/7854315/100848

...