SwiftUI iOS16で音声再生(AVSpeechSynthesizer)されない問題解消法
こんばんは!りーさんです。
iOS16では、なぜか音声が再生されない問題がありました。
エラー内容はこちら
[catalog] Unable to list voice folder
なんだ?初めてみるぞ。。。
調べてみるとアップルデベロッパーのサイトで同じような質問がされてました。https://developer.apple.com/forums/thread/712809
let utterance = AVSpeechUtterance(string: "こんにちは 世界")
utterance.voice = AVSpeechSynthesisVoice(language: "ja-JP")
let synthesizer = AVSpeechSynthesizer() ← これが定数で宣言されてるのが良くないらしい
synthesizer.speak(utterance)
解決法
@Published var synthesizer = AVSpeechSynthesizer()
func speak() {
let utterance = AVSpeechUtterance(string: "こんにちは 世界")
utterance.voice = AVSpeechSynthesisVoice(language: "ja-JP")
utterance.rate = 0.5
synthesizer.speak(utterance)
}
と状態管理をつけてあげるとiOS16でも問題なく、音声読み上げてくれます!
この記事が気に入ったらサポートをしてみませんか?