前提・実現したいこと
AVSpeechSynthesizerを使って音声読み上げを実装しようとしましたが、preUtteranceDelayを定義すると音声を読み上げなくなります。
該当のソースコード
swift
1import UIKit 2import AVFoundation 3 4class ViewController: UIViewController { 5 6 override func viewDidLoad() { 7 super.viewDidLoad() 8 // Do any additional setup after loading the view. 9 let synthesizer = AVSpeechSynthesizer() 10 11 let utterance = AVSpeechUtterance.init(string: "読み上げる文字列") 12 let voice = AVSpeechSynthesisVoice.init(language: "ja-JP") 13 utterance.preUtteranceDelay = TimeInterval(1) // ここをコメントアウトするか0で定義しないと再生されない 14 utterance.voice = voice 15 synthesizer.speak(utterance) 16 } 17 18 19}
試したこと
- TimeInterval(0)だと再生される
- Xcode上だけでなく自分のiPhone8上でも試したが結果は変わらず
- breakpointを置いて確認したところ、一応preUtteranceDelayは1で定義されている(下図)
補足情報(FW/ツールのバージョンなど)
- Xcode12.4
- Swift 5.3.2
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。