显示视频时保持 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
。我希望它继续计数,有没有办法不用在文件中写入当前时间等等?
感谢您的帮助
这种行为可能有多种原因,但我注意到的一件常见事情(在我的职业生涯中见过几次)是使 viewWillDisappear
或 viewDidDisappear
方法中的计时器无效,并且在 viewWillAppear
和 viewDidAppear
方法上启动它。如果你想 运行 一个计时器直到视图控制器被关闭,那么你应该在 viewDidLoad
方法中启动计时器并在你关闭视图控制器之前使它无效(或者当你得到想要的结果时,但是 never try to invalidate the timer in the dealloc method)
我知道后台有很多关于 运行 计时器的问题,例如这个: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
。我希望它继续计数,有没有办法不用在文件中写入当前时间等等?
感谢您的帮助
这种行为可能有多种原因,但我注意到的一件常见事情(在我的职业生涯中见过几次)是使 viewWillDisappear
或 viewDidDisappear
方法中的计时器无效,并且在 viewWillAppear
和 viewDidAppear
方法上启动它。如果你想 运行 一个计时器直到视图控制器被关闭,那么你应该在 viewDidLoad
方法中启动计时器并在你关闭视图控制器之前使它无效(或者当你得到想要的结果时,但是 never try to invalidate the timer in the dealloc method)