如果在iOS 12.3上AVSpeechSynthesizer不起作用,但在iOS 12.2上正常运行,可以尝试以下解决方法:
import AVFoundation
let speechSynthesizer = AVSpeechSynthesizer()
let voices = AVSpeechSynthesisVoice.speechVoices()
for voice in voices {
print(voice)
}
确保在iOS 12.3上找到了预期的语音列表。
检查AVSpeechSynthesizer的委托方法:在iOS 12.3上,可能会更改了AVSpeechSynthesizerDelegate的委托方法的行为或更改了回调顺序。确保委托方法正确设置,并检查是否有任何编译错误或警告。
检查iOS设备的声音设置:在iOS 12.3上,可能会更改了默认的声音设置或更改了音量控制。确保设备的音量设置正确,并且没有将静音模式打开。
检查应用的权限设置:在iOS 12.3上,可能更改了应用获取语音权限的方式。确保应用已经获取了适当的权限,可以通过以下代码请求语音权限:
import AVFoundation
AVAudioSession.sharedInstance().requestRecordPermission { (granted) in
if granted {
print("语音权限已授予")
} else {
print("语音权限未授予")
}
}
确保在iOS 12.3上获取到了语音权限。
如果上述解决方法仍无法解决问题,建议查看苹果的开发者文档、官方论坛或提交反馈以获取更多帮助。