Reputation: 5117
It's working correctly if the app just become inactive/active (when some alert came or by double clicking on home button)
AVPlayer *player;
- (void)applicationWillResignActive:(UIApplication *)application
{
[player pause];
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
[player play];
}
If the app goes to background (by clicking home button) and comes back, it's not playing from paused position instead of that it is playing from different point (sometimes from start, sometimes from middle).
Upvotes: 7
Views: 7372
Reputation: 38239
Follow below steps:
1) Firstly add float *time
in appDelegate.h
file.
2) Take current time
in applicationWillResignActive
3) Add below methods
ApplicationWillResignActive
method pause
player and save
current
time
of player
- (void)applicationWillResignActive:(UIApplication *)application
{
[player pause];
time = player.currentTime
}
Now in applicationDidBecomeActive
add seekToTime
- (void)applicationDidBecomeActive:(UIApplication *)application
{
[player seekToTime:time toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero];
[player play];
}
Upvotes: 22
Reputation: 2127
You should call the this methods before application is going to background. [player pause]; or [player stop];
Upvotes: 1