在给定的CMTime暂停AVPlayer

时间:2012-01-11 11:16:44

标签: objective-c ios avplayer

我正在为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 :(得分:0)

你必须使用__weak存储装饰器 例如把它放在你的区块代码之前:

__weak MYClass* blockSelf = self;

并在块内使用blockSelf而不是self。

<强>更新
刚刚在SO上找到了这个优秀的答案: https://stackoverflow.com/a/7854315/100848