当应用程序转到后台时,AVPlayer和addPeriodicTimeObserverForInterval不起作用

时间:2012-02-26 22:40:27

标签: ios avplayer updates

问题1。 我在iphone 4和iOS 5.0.1上看到以下行为

  • 使用addPeriodicTimeObserverForInterval注册,每250毫秒接收一次更新并更新用户界面。

  • 效果很好,直到应用程序进入后台。例如。点击主页按钮或锁定屏幕,

  • 当应用程序返回前台时,播放器会再次开始播放,但更新不会再次触发。如果用户再次点击播放暂停按钮,UI更新将再次开始触发。 这可以在Apple的demo应用中看到。

问题2

我们不能将基于C的音频会话API与AV基础类混合使用吗?例如。我在AudioInterruptions时注册了我的基于C的监听​​器。但是当我使用带有kAudioSessionCategory_PlayAndRecord的AVPlayer时,他们不会被调用。当应用程序进入后台时,AVPlayer暂停而不会调用基于C的侦听器。

这是预期的还是我可以做些什么?请注意,一旦我处理了AVPlayer实例,我的应用程序再次转到后台与kAudioSessionCategory_PlayAndRecord  设置为侦听器函数的类别。

1 个答案:

答案 0 :(得分:0)

对于您的第一个问题,很可能您没有按照建议发布addPeriodicTimeObserverForInterval。尝试在AppDelegate

中添加这样的内容
- (void)applicationDidEnterBackground:(UIApplication *)application
{
    [_audioManager.audioPlayer removeTimeObserver:_audioManager.timeObserver];
    _audioManager.isUIActive = NO;
}

以及重新启动定期时间观察器的适当方法:

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    [_audioManager setUpTransportUI];
    _audioManager.isUIActive = YES;
}

其中setUpTransportUI重新创建您的时间观察者。