【问题标题】:AVPlayer and addPeriodicTimeObserverForInterval does not work when app goes to background当应用程序进入后台时,AVPlayer 和 addPeriodicTimeObserverForInterval 不起作用
【发布时间】:2012-02-26 22:40:26
【问题描述】:

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

  • 使用 addPeriodicTimeObserverForInterval 注册以每 250 毫秒接收一次更新并更新 UI。

  • 在应用程序进入后台之前运行良好。例如。点击主页按钮或锁定屏幕,

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

问题 2

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

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

【问题讨论】:

  • 您是否注册了远程事件通知并将后台模式设置为应用播放音频? (您还需要将视图控制器设置为第一响应者)
  • 谢谢苏珀。但是您还没有回答我的任何问题:(。我不希望我的应用程序在后台播放并且事实上它是我想要的行为。

标签: ios avplayer updates


【解决方案1】:

对于您的第一个问题,很可能您没有按照建议发布addPeriodicTimeObserverForInterval。尝试在您的 AppDelegate 中添加这样的内容:

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    [_audioManager.audioPlayer removeTimeObserver:_audioManager.timeObserver];
    _audioManager.isUIActive = NO;
}

以及重启周期性时间观察器的适当方法:

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

setUpTransportUI 在哪里重新创建您的时间观察器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-13
    相关资源
    最近更新 更多