【问题标题】:AVPlayer Pause and play issues when app goes background应用程序进入后台时 AVPlayer 暂停和播放问题
【发布时间】:2012-10-30 06:09:53
【问题描述】:

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

AVPlayer *player;

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

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

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

【问题讨论】:

    标签: iphone ios avplayer


    【解决方案1】:

    按照以下步骤操作:

    1) 首先在appDelegate.h 文件中添加float *time

    2) 在applicationWillResignActive 中取current time

    3) 添加以下方法

    ApplicationWillResignActive方法pause播放器和savecurrenttime播放器

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

    现在在applicationDidBecomeActive 添加seekToTime

    - (void)applicationDidBecomeActive:(UIApplication *)application
    {
      [player seekToTime:time toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero];
      [player play];
    }
    

    【讨论】:

    • 之前我做同样的 seekToTime 对我不起作用,苹果在寻找时做了一些优化。而不是我们必须使用 [_videoPlayer seekToTime:_pausedTime toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero];正常工作
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多