显示视频时保持 NSTimer 运行

Keep NSTimer going while showing video

我知道后台有很多关于 运行 计时器的问题,例如这个:how to keep running NSTimer when app goes in background ,如果我什么也没得到,我肯定会使用他的答案,但我的问题是当应用程序进入后台时不是真的(也就是说,如果我理解正确的话)。

就是这样,我有一个带有计时器的视图控制器,我用作倒计时,从这个视图控制器可以看到视频。我在那部分使用 AVPlayerViewController。 :

AVPlayer *player = [AVPlayer playerWithURL:videoURL];
AVPlayerViewController *playerViewController = [AVPlayerViewController new];
playerViewController.player = player;
[self presentViewController:playerViewController animated:YES completion:nil];

因此我在拥有计时器的上方有一个 AVPlayerViewController,计时器停止计数,直到我离开这个 AVPlayerViewController。我希望它继续计数,有没有办法不用在文件中写入当前时间等等?

感谢您的帮助

这种行为可能有多种原因,但我注意到的一件常见事情(在我的职业生涯中见过几次)是使 viewWillDisappearviewDidDisappear 方法中的计时器无效,并且在 viewWillAppearviewDidAppear 方法上启动它。如果你想 运行 一个计时器直到视图控制器被关闭,那么你应该在 viewDidLoad 方法中启动计时器并在你关闭视图控制器之前使它无效(或者当你得到想要的结果时,但是 never try to invalidate the timer in the dealloc method)