iOS Swift - 文本到语音使应用程序崩溃
Posted
技术标签:
【中文标题】iOS Swift - 文本到语音使应用程序崩溃【英文标题】:iOS Swift - Text to Speech make the app crash 【发布时间】:2016-12-14 11:09:54 【问题描述】:单击按钮时,我有一个具有文本到语音功能的应用程序。我的代码运行良好,直到它使应用程序崩溃。我认为这个错误一定与 ios 9.3.3 的新版本有关,但我在网上找不到任何东西,这就是我在这里发帖的原因。
这里是一个按钮触发的功能:
func textToSpeech()
let textSynthesizer = AVSpeechSynthesizer()
let utterance = AVSpeechUtterance(string: self.targetLanguage)
utterance.voice = AVSpeechSynthesisVoice(language: self.languageFlag)
textSynthesizer.speakUtterance(utterance)
当我单击按钮时,我在 AVSpeechSynthesizer 初始化时收到此错误:
在控制台中: (lldb)
有人知道如何解决这个问题吗? 谢谢, 亚历克斯
【问题讨论】:
如果您为self.targetLanguage
和self.languageFlag
添加了print
s,他们会怎么说...?
是的,我已经检查过了,我得到了每个不为空的字符串的值(几个月前我写的代码工作正常)。 self.targetLanguage 是翻译成目标语言的单词,self.languageFlag 是语言的区域设置(由 TTS 支持)。
你有没有想过解决这个问题?我在 iOS 10 上看到了同样的情况。它不会每次都发生,但它经常发生。自 iOS 7 以来,我一直在大量使用 AVSpeechSynthesizer,并且最近没有对我的语音代码进行任何更改。
【参考方案1】:
试试这个 -:
func text2Speech(text: String,languageCode: String)
do
try AVAudioSession.sharedInstance().setCategory(.playback,mode: .default)
catch let error
print("\(error.localizedDescription)")
let speechUtterance: AVSpeechUtterance = AVSpeechUtterance(string: text)
speechUtterance.rate = AVSpeechUtteranceMaximumSpeechRate / 2.0
speechUtterance.voice = AVSpeechSynthesisVoice(language: languageCode)
speechSynthesizer.speak(speechUtterance)
【讨论】:
以上是关于iOS Swift - 文本到语音使应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章
如何使标签文本中的链接可用于语音(可访问性)? (iOS,Xamarin)
如何将元数据谷歌语音传递给文本 api - swift ios
无法从 UITextField 获取文本 - Swift - iOS