ios如何在后台运行警报声

Posted

技术标签:

【中文标题】ios如何在后台运行警报声【英文标题】:ios how to run the alarm sound in background 【发布时间】:2014-12-03 07:00:19 【问题描述】:

我正在开发一个闹钟应用程序。在闹钟播放声音时,如果应用程序处于打开状态(前台),则它会执行

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification

方法和警报声播放成功。

但是,如果我的应用处于非活动/后台状态,则在播放警报声时,它不会调用上述方法。

那么有什么方法可以让我也可以在后台播放警报声。目前,当我的应用在后台时,只有通知到达并且没有声音/歌曲正在播放。

下面是我的代码

-(void)application:(UIApplication *)application didReceiveLocalNotification(UILocalNotification *)notification

        musicPlayer = [MPMusicPlayerController applicationMusicPlayer];

        [musicPlayer setQueueWithItemCollection:collection];
        [musicPlayer play];

        [self showReminder:@"Alarm ON!"];


- (void)showReminder:(NSString *)text

    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Alarm"
                                                        message:text delegate:self
                                              cancelButtonTitle:nil
                                              otherButtonTitles:@"Snooze",@"Ok",nil];
    [alertView show];


我只是想知道如何在应用处于非活动状态/后台时播放歌曲并显示警报以停止/暂停闹钟。

请帮帮我。

【问题讨论】:

你让它工作了吗? 【参考方案1】:

对于前景: -application:didReceiveLocalNotification:

对于背景: -application:handleActionWithIdentifier:forLocalNotification:completionHandler:

Apple 建议这样做,

Note: An alarm is not intended to serve as a UILocalNotification. An alarm requires you to create an event or reminder that is visible in the user’s Calendar or Reminders app. A UILocalNotification is better suited for general purposes that don’t involve the Calendar database.

Apple Documentation about Configuring Alarms

【讨论】:

【参考方案2】:

下面是我的代码,你可以试试看!

- (void)applicationDidEnterBackground:(UIApplication *)application
 musicPlayer = [MPMusicPlayerController applicationMusicPlayer];

    [musicPlayer setQueueWithItemCollection:collection];
    [musicPlayer play];

    [self showReminder:@"Alarm ON!"];
 

【讨论】:

以上是关于ios如何在后台运行警报声的主要内容,如果未能解决你的问题,请参考以下文章

如何在后台应用程序时从 JavaScript 发出通知/警报 - PhoneGap iPhone/iOS

在后台运行ios应用

如何使用libGDX在iOS / Android后台运行应用程序

iphone App:当App在后台运行时发送警报消息?

在 iOS 中运行后台服务

当 ios 应用程序在后台并且有人选择它时调用警报声音,使用核心运动