【问题标题】:iOS: How do alarm Apps play sound after App is inactive?iOS:App停用后闹钟App如何播放声音?
【发布时间】:2017-01-12 22:37:16
【问题描述】:

许多闹钟应用在几个小时后设法在锁定屏幕的情况下播放声音(例如:Rise、Wave 闹钟)

您只需在应用打开时设置闹钟并锁定屏幕,屏幕锁定数小时后闹钟就会响起。

我设法弄清楚如何在我的设备被锁定时使用 AVPlayer 播放音频:

  1. 将背景功能设置为音频

  2. 将“应用程序不在后台运行”设置为是

  3. 代码:

    do {
        try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
        print("AVAudioSession Category Playback OK")
    do {
        try AVAudioSession.sharedInstance().setActive(true)
        print("AVAudioSession is Active")
        } catch let error as NSError {
            print(error.localizedDescription)
        }
    } catch let error as NSError {
        print(error.localizedDescription)
    }
    

当我尝试设置 NSTimer 或使用 dispatch_after 运行播放我的音频文件并锁定我的 iPhone 的代码时,Timer 会很快停止,因为显然应用程序在几秒钟后就处于非活动状态 (但只有当我从主屏幕启动应用程序时,当我从 xcode 运行应用程序时才不会,顺便说一句)

那些闹钟应用程序如何设法延迟音频?

【问题讨论】:

  • 本地通知,可能
  • 不。本地通知限制为最长 30 秒的声音,并且它们在静音时不会响铃,但这些应用会响
  • 他们可以将闹钟放到您的日历中(闹钟类型的事件)。

标签: ios swift avaudiosession


【解决方案1】:

这些应用通过退出多任务模式来实现这一点。如果应用程序选择退出多任务模式,如果应用程序在设备锁定时处于前台,则应用程序不会暂停,因此它们可以在时间到达时播放警报声音。你可以阅读更多here

【讨论】:

    【解决方案2】:

    (代表问题作者发布答案以将其移至答案空间)

    我知道他们是怎么做到的。我设置了一个闹钟,听着扬声器的声音。这些应用程序会播放静音以保持活跃。我不知道他们是如何通过 Apple 的检查的,但显然许多闹钟应用程序都这样做并通过了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多