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

Iphone 在发送通知时,是否可以停止播放UILocalNotification的声音?,iphone,audio,uilocalnotification,Iphone,Audio,Uilocalnotification,如果UILocalNotification发出声音集,并且用户点击通知警报上的“取消”,则声音停止。但如果用户点击“查看”,iOS就会向应用程序发送通知,声音就会继续播放。有没有办法从应用程序中取消此声音?通知发送后取消应用程序中的通知不起作用(我没料到,通知毕竟已经发送了),而且由于我没有声音的系统声音ID(而且我一开始没有分配),我无法调用AudioServicesDisposeSystemSoundID(可以吗?) 如果用户点击通知警报的操作按钮,是否可以停止UILocalNotifica

如果UILocalNotification发出声音集,并且用户点击通知警报上的“取消”,则声音停止。但如果用户点击“查看”,iOS就会向应用程序发送通知,声音就会继续播放。有没有办法从应用程序中取消此声音?通知发送后取消应用程序中的通知不起作用(我没料到,通知毕竟已经发送了),而且由于我没有声音的系统声音ID(而且我一开始没有分配),我无法调用AudioServicesDisposeSystemSoundID(可以吗?)


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

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

它也不会在设备上停止(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;
}

但是它仍然不会在设备上停止

它可以在应用程序委托方法中处理,如下所示,如果用户点击通知警报的操作按钮,则将调用以下方法,在那里我们可以取消通知

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

我最初使用iPhone4进行测试时也遇到了同样的问题

从iOS 8开始,问题似乎已经消失,现在本地通知在过渡到应用程序后取消时停止

iPhone4[iOS-7.1.2]-无论发生什么情况,本地通知声音都会在应用程序中播放
iPhone6[iOS-8.1.1]-以编程方式取消时本地通知声音停止

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

对于专注于iOS 8的应用程序来说,这个问题已不再是问题了

(前提是您取消了本地通知)

事实并非如此。我刚刚在ios 6和ios 7设备上进行了测试。取消本地通知后,本地通知声音不会停止。请注意,我的回答是大约3年前,在ios 6和ios 7之前。当时我手头上的设备和iOS版本也是如此。可能旧的bug又出现了——我看到手机未锁定时声音会中断(通知出现在顶部),但是,如果设备被锁定并且通知出现在锁定屏幕上,则声音不会中断。您能否确认这是在哪个设备上以及在哪个特定版本上停止(静音)通知声音?