0

Apple 资源包含很多信息,但有一件事我无法清楚地理解有关音频和通知的阅读。

是否可以制作一个应用程序,在后台运行产生声音(即使手机被锁定和/或静音)并且当它发生时用户必须解决例如。方程式将其关闭?

ps 目前我主要使用 Cordova 框架,但 Obj-C 技巧也很好。

4

2 回答 2

1

是的,这是可能的。您可以为此使用UILocalNotification

苹果还允许在后台播放音乐的应用程序。

请检查这些链接以了解后台任务功能:

  1. 管理您的应用程序流程
  2. ios多任务后台任务
  3. 如何在 ios 设备被锁定或在另一个设备上处理背景音频播放
于 2013-01-11T04:26:31.633 回答
0

您可以更改 NSTimers 的本地通知(使用https://github.com/mruegenberg/MMPDeepSleepPreventer使它们在非活动模式下保持活动状态)并计算每个警报的时间间隔。这样,即使屏幕锁定并且声音关闭,您也可以播放音频,将其粘贴到您的- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions:

// Let the sound run with the screen blocked
NSError *setCategoryErr = nil;
NSError *activationErr  = nil;
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error:&setCategoryErr];
[[AVAudioSession sharedInstance] setActive:YES error:&activationErr];

但是你会遇到一些问题:

  • 该应用程序必须每 10 秒播放一次音频文件,这样它就不会深度睡眠并杀死所有 NSTimers。
  • Apple 可能会因此拒绝您的应用程序。
  • 您不能使用主页按钮关闭应用程序,否则将无法正常工作。
  • 每次需要使用闹钟时都必须打开应用程序(您不能安排和忘记)。
  • 当闹钟响起时,您只有 iPhone 的锁屏,需要先解锁,然后从应用程序内部停止闹钟。

在 Apple,他们不希望竞争对手的闹钟应用程序出现,这是肯定的!您在 App Store 中看到的几乎所有闹钟应用程序都使用这种糟糕的方法。

于 2013-12-04T09:51:12.163 回答