見出し画像

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でも問題なく、音声読み上げてくれます!

この記事が気に入ったらサポートをしてみませんか?