Mac 上的 UNUserNotificationCenter 无法播放自定义音频文件

问题描述 投票:0回答:1

我正在 BigSur 上构建一个菜单栏应用程序。应用程序经常发送

UserNotifications
。我想对显示的
.default
声音应用不同的声音 用户通知。我在播放声音时遇到了一些问题。我已尽我所能,但仍无法使其发挥作用。

到目前为止我所做的(音频文件是

one.caf

  1. 检查音频文件是否在
    Copy Bundle resources
    中,有

  1. 检查多种音频格式(
    .mp3, .wav, .caf
    )
  2. 将位置从
    project root
    更改为
    controllers
    目录

  1. 清理了构建文件夹,清除了派生数据,然后重新启动
  2. 使用
    Bundle.main.url()
    获取路径,然后调用
    .lastPathComponent

  1. 我已检查是否已为文件选择目标

  1. 我也检查了该文件是否位于
    finder
    中的同一目录中。

我不确定这是否与我调用通知的方式有关,但我对此表示怀疑。不管怎样,下面是我需要显示通知时运行的代码。仅供参考,我正在使用

singleton
类来管理通知

    private func showNotification(title: String, subtitle: String) {
        let content = UNMutableNotificationContent()
        content.title = title
        content.subtitle = subtitle
   
        // Getting asset name using URL
        let stringPath = Bundle.main.url(forResource: "one", withExtension: "caf")
        print(stringPath?.lastPathComponent)


//        content.sound = UNNotificationSound(named: UNNotificationSoundName(rawValue: "one.caf"))
        UNNotificationSound(named: UNNotificationSoundName(stringPath?.lastPathComponent ?? ""))
        content.sound = .defaultCritical
        let request = UNNotificationRequest(identifier: UUID().uuidString, content: content, trigger: nil)
        UNUserNotificationCenter.current().add(request)
    }

包装内容为

swift cocoa audio swiftui nsnotificationcenter
1个回答
0
投票

我有完全相同的问题,我尝试了一切但无法解决。您找到解决办法了吗?

© www.soinside.com 2019 - 2024. All rights reserved.