我们可以在 Swift 中根据推送通知制作文本转语音功能吗?

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

目前,我正在开发一个项目,以在应用程序收到推送通知时实现文本转语音功能。通知保存在本地,并使用内容为 UNMutableNotificationContent() 的本地通知进行显示。它必须使用铃声,并且必须在前台、后台运行,甚至在应用程序被终止时运行,类似于 UNMutableNotificationCenter() 中的 .sound 属性。

我特别没有使用 AVAudioSession 中的播放类别,因为它使用媒体音频而不是铃声音频。当我在 AVAudioSession 中使用环境类别时,它无法在后台运行或当应用程序被终止时。我希望它能够在前台、后台运行,甚至当应用程序在收到推送通知后被终止时也是如此。

这段代码片段是我在 AppDelegate didReceiveRemoteNotification 中使用的逻辑。

if let tts = userInfo["text"] as? String {
    do {
        try audioSession.setActive(true)
        try audioSession.setCategory(AVAudioSession.Category.ambient,
                                    options: [.duckOthers])
    } catch {
        print("Unable to set audio session category: %@", error)
    }

    let utterance = AVSpeechUtterance(string: userInfo["text"] as! String)
    utterance.voice = AVSpeechSynthesisVoice(language: "id-ID")
    synthesizer.speak(utterance)
}
ios swift xcode push-notification text-to-speech
1个回答
0
投票

答案可能是否定的。推送通知提供的选项范围有限。您可以显示带有应用程序图像的警报、播放预先录制的声音(也来自应用程序包)或显示带有标题和消息的横幅。就是这样。用户点击通知后,您的应用程序就会启动并进入前台,为您提供更多与用户交互的选项。但是,在用户使用通知之前,您无法自定义所提供的基本选项之外的交互。

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