2

我正在发出本地通知。由于UILocalNotificationiOS 10 中不推荐使用 class,因此我使用了UserNotifications.framework.

当我尝试为通知设置自定义声音时,默认声音一直在播放。

这是我的代码:

- (IBAction)fireLocalNotification:(id)sender {
    
    UNMutableNotificationContent* content = [[UNMutableNotificationContent alloc] init];
    content.title = [NSString localizedUserNotificationStringForKey:@"Hello!" arguments:nil];
    content.body = [NSString localizedUserNotificationStringForKey:@"Hello_message_body"
                                                         arguments:nil];
    content.sound = [UNNotificationSound soundNamed:@"sound.mp3"];
    
    // Deliver the notification in five seconds.
    UNTimeIntervalNotificationTrigger* trigger = [UNTimeIntervalNotificationTrigger
                                                  triggerWithTimeInterval:5 repeats:NO];
    
    UNNotificationRequest* request = [UNNotificationRequest requestWithIdentifier:@"FiveSecond"
                                                                          content:content trigger:trigger];
    
    // Schedule the notification.
    UNUserNotificationCenter* center = [UNUserNotificationCenter currentNotificationCenter];
    [center addNotificationRequest:request withCompletionHandler:^(NSError *error){
        
        if(!error){
            
            NSLog(@"Completion handler for notification");
        }
        
    }];
}

我的声音很好;sound.mp3 存在于项目包本身中。

更多信息: https ://developer.apple.com/reference/usernotifications/unusernotificationcenter?language=objc

4

2 回答 2

3

尝试从设备中删除应用程序,清理并在设备上再次运行该应用程序。

有时,资源没有正确更新;我认为这是你的问题。

于 2016-10-24T10:58:21.947 回答
1

不支持长音频文件。

您的文件是否超过 30 秒?如果是,它将不起作用。只有短于 30 秒的文件可用。如果文件长于 30 秒,则将替换为默认声音。

UNNotificationSound 文档

于 2017-06-16T22:54:08.210 回答