【问题标题】:Play sound at specific time while app is in background应用程序在后台时在特定时间播放声音
【发布时间】:2011-08-15 19:58:04
【问题描述】:

我正在寻找某种方法让我的应用在特定时间在后台播放声音(IOS4 多任务处理)。目前,我使用本地通知,效果很好,除了:

  • 手机静音时不会播放声音
  • 30 秒播放限制

我看到有 setKeepAliveTimeout:handler: 但它仅适用于 voip-apps,因为这不是我的应用程序的目的,我猜 Apple 会因此拒绝它。我还看到了一个解决方案,它会一直播放“空”的声音,直到到达时间为止,但是——不管怎样,这不是一种非常优雅的方式——我读到这也可能会导致应用程序被拒绝。

由于有一些闹钟应用程序可以满足我的需求,我想知道它们是如何实现此功能的。

提前感谢您的任何提示!

【问题讨论】:

  • 我知道这篇文章很旧,但我面临着和你一样的问题。你找到解决办法了吗?

标签: iphone ios4 background audio multitasking


【解决方案1】:

如果您寻求 Apple 批准的解决方案,您是对的,您不能使用 setKeepAliveTimeout:handler,即使可以 - 您也不能将超时设置为小于 600 秒的值,所以我想无论如何它不会有很大的用处(除此之外,即使远程接近您指定的超时,也不能保证触发事件。例如,我将其设置为 600 秒,而某些事件早在 360 秒就触发了。 .).

关于播放静音,除了电池的浪费,如果你的应用程序可以合法使用背景音频(如果你正在实现一个闹钟,那很明显),我看不出你的理由只要您不尝试使用其他后台功能(GPS 信号、VoIP 处理程序等),应用就会被拒绝。

以下是一个使用此“功能”的示例应用程序: http://tapbots.com/blog/pastebot/pastebot-music-in-background

关于其他方法,你可以看这个帖子: How do I start playing audio when in silent mode & locked in iOS 6?

就个人而言,应对 Apple 的背景政策并不容易。由于所有限制,我和我的公司(有?)很难维持简单的 VoIP 连接。我最好的建议是尽可能少地在后台做事。如果UILocalNotificaion 解决方案适合您,您可能应该坚持使用它并接受限制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-20
    • 1970-01-01
    • 2017-05-24
    • 2020-10-03
    相关资源
    最近更新 更多