2012-02-26 28 views
2

问题不起作用1. 我看到下面使用addPeriodicTimeObserverForInterval接收更新每250毫秒和更新UI在iPhone 4上的行为和iOS 5.0.1AVPlayer和addPeriodicTimeObserverForInterval当应用程序被切换到后台

  • 寄存器。

  • 运行良好,直到应用程序去背景。例如。点击主页按钮或锁定屏幕,

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

问题2

我们不能混用基于C与AV基础类音频会话的API?例如。 AudioInterruptions时我注册了C基监听器。但是当我用kAudioSessionCategory_PlayAndRecord使用AVPlayer时,他们不会被调用。当应用程序转到后台时,如果没有调用基于C的侦听器,AVPlayer会暂停。

这是预期还是我可以做点什么?请注意,一旦我放置了AVPlayer实例,并且我的应用程序在kAudioSessionCategory_PlayAndRecord 设置为类别时再次返回后台,则会调用侦听器函数。

+0

您是否注册了远程事件通知并将背景模式设置为App播放音频? (您还需要将视图控制器设置为第一响应者) – sooper 2012-02-26 23:49:08

+0

谢谢Sooper。但是你还没有回答我的任何问题:(我不希望我的应用程序在后台播放,实际上它是我想要的行为。 – xmlsingh 2012-02-28 00:53:27

回答

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再现你的时间观察。

相关问题