是否可以在发送通知时停止播放UILocalNotification的声音?

时间:2011-01-21 19:12:57

标签: iphone audio uilocalnotification

如果UILocalNotification使用声音设置触发,并且用户点击通知警报上的“取消”,则声音将停止。但是如果用户点击“查看”,则iOS会将通知发送到应用程序,然后声音继续播放。有没有办法从应用程序中取消此声音?一旦发送通知就取消应用程序中的通知不起作用(我没想到,通知已经全部交付),并且因为我没有声音的系统声音ID(我没有首先分配它,我不能调用AudioServicesDisposeSystemSoundID(可以吗?)。

如果用户点击通知提醒的操作按钮,是否可以停止播放UILocalNotification声音?

4 个答案:

答案 0 :(得分:2)

它也不会在设备上停止(5.1)

我一直试图解决这个问题,但我无法弄明白。

我实际上是使用此

停止在模拟器上
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    UILocalNotification *localNotif = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
    if (localNotif) {
        [[UIApplication sharedApplication] cancelLocalNotification:localNotif];
    }    
    return YES;
}

但它仍未在设备上停止

答案 1 :(得分:1)

显然问题只存在于模拟器(iOS 4.2 sdk)上,而不存在于实际设备上。

答案 2 :(得分:0)

可以在应用程序委托方法中处理如下,如果用户点击通知警报的Action按钮,则会调用以下方法,我们可以取消通知

- (void)application:(UIApplication *)app
didReceiveLocalNotification:(UILocalNotification *)notif {
[[UIApplication sharedApplication]cancelLocalNotification:notif];
}

答案 3 :(得分:0)

最初使用iPhone 4进行测试时遇到了同样的问题。

问题出现从iOS 8开始消失,现在本地通知声音在转换到应用程序后取消时停止。

iPhone4 [iOS - 7.1.2] - 本地通知声音无论在什么位置都在App中播放 iPhone6 [iOS - 8.1.1] - 以编程方式取消时本地通知声音停止

根据我的推断,iOS 8.x中的某个地方似乎存在修复 (唉,我没有找到任何关于此事的文件或发行说明。)

问题对于专注于iOS 8的应用来说不成问题
(如果您取消了本地通知)