7

如果应用程序刚刚变为非活动/活动状态(当出现一些警报或双击主页按钮时),它就可以正常工作

AVPlayer *player;

- (void)applicationWillResignActive:(UIApplication *)application
{
    [player pause];
}

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    [player play];
}

如果应用程序进入后台(通过单击主页按钮)并返回,则它不是从暂停位置播放,而是从不同点播放(有时从开始,有时从中间)。

4

2 回答 2

22

请按照以下步骤操作:

1)首先添加文件float *timeappDelegate.h

2)current time接受applicationWillResignActive

3)添加以下方法

ApplicationWillResignActive方法pause播放器和save current time播放器的

- (void)applicationWillResignActive:(UIApplication *)application
{
   [player pause];
   time = player.currentTime
}

现在在applicationDidBecomeActive添加seekToTime

- (void)applicationDidBecomeActive:(UIApplication *)application
{
  [player seekToTime:time toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero];
  [player play];
}
于 2012-10-30T06:48:50.407 回答
1

您应该在应用程序进入后台之前调用 this 方法。[玩家暂停];或[玩家停止];

于 2012-10-30T11:08:08.763 回答