如何设置音频选项,将iOS应用程序置于后台模式?

时间:2011-07-22 22:03:37

标签: iphone ios xcode background accelerometer

因此我的iphone4应用程序从加速度计读取数据并通过tcp套接字将其发送到另一个应用程序。我需要我的应用程序在后台模式下工作,所以我做的是:

  • 我在应用程序的文档文件夹
  • 中放了一个mp3文件
  • 我使用 AVAudioPlayer 库来循环播放文件。 有效。
  • 我修改了 Info.plist 并添加了选项“必填背景 模式“with”audio“on。

但是,只要按下iphone的主页按钮,调度程序就会暂停应用程序。我错过了什么吗?

我阅读了苹果的文档,但我找不到解决方案。关于这一点的一些想法:

  • 我是否必须编辑appDelegate.m?
  • 是因为我使用AVAudioPlayer而不是 iPod
  • 是因为我从应用程序文档播放音频文件 文件夹?
  • 我读到一个人将iOS开发目标从4.0更改为 3.2.1,但这对我不起作用。

最后,说我让这个工作,应用程序仍然会从加速度计获取数据吗?

在旁注中,我不想将应用程序提交到App Store。

2 个答案:

答案 0 :(得分:4)

不,您不会在后台模式下收到加速计通知。据我所知,这是不可能的。检查Executing Code in Background

如果您仔细阅读文档,您将会知道整个背景代码模型基于对特定事件(locationvoip模式)的响应。

至于audio模式,这里是Apple的摘录:

  

您的申请应限于仅从事必要的工作   提供在后台播放的数据。例如,a   流音频应用程序将从其下载任何新数据   服务器并将当前音频样本推出以进行播放。你应该   不执行与播放无关的任何无关任务   内容。

答案 1 :(得分:0)

不确定您是否已经解决了您的问题,因为这个问题是在一年多前发布的。此外,不确定在您的应用中是否必须播放音频。如果两个答案都不是,我最近的调查可能会有所帮助。

以下是我如何让我的应用在后台获取加速度计数据 1.按照本教程http://mobile.tutsplus.com/tutorials/iphone/ios-multitasking-background-location/进行操作以获取后台位置。 2.按照本教程http://jonathanhui.com/ios-motion使加速度计工作。

然后你可以在后台获得一个收集加速度计数据的应用程序。希望这会有所帮助。