【问题标题】:Is it possible to stop the sound of a UILocalNotification from playing when the notification is delivered?发送通知时是否可以停止播放 UILocalNotification 的声音?
【发布时间】:2011-01-21 19:12:56
【问题描述】:

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

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

【问题讨论】:

    标签: iphone audio uilocalnotification


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 实际上并非如此。我刚刚在 ios 6 和 ios 7 设备上进行了测试。取消本地通知后,本地通知声音不会停止。
      • 请注意,我的答案是在 3 年前,在 ios 6 和 7 之前。当时我手头的设备和 iOS 版本都是如此。
      • 可能老bug又出现了——我看到手机未锁定时声音被中断(通知出现在顶部),但如果设备被锁定并且通知出现在锁定屏幕上,声音不会中断
      【解决方案3】:

      可以在application delegate方法中处理如下,如果用户点击通知的alert的Action按钮,那么会调用下面的方法,我们可以取消通知

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

      【讨论】:

      • 您能否确认在哪个设备和哪个特定版本上实际停止(静音)通知声音?
      【解决方案4】:

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

      问题似乎在 iOS 8 中已经消失,现在本地通知声音在转换到应用程序后取消时停止。

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

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

      对于专注于 iOS 8 的应用程序而言,该问题不再是问题
      (前提是您取消了传入的本地通知)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-27
        • 2021-08-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多