11

アプリにテキスト読み上げを実装しましたが、現在使用しているコードで問題なく動作します。基本的にアルゴはテキストを作成し、ユーザーが UIButton をクリックするとテキストが読み上げられます。

課題: 同じ UIButton を有効にして、ボタンが既にタップされている (つまり、テキストが現在読み上げられている) 場合はシンセサイザーを一時停止し、ボタンが再度タップされている場合は中断したところから読み上げを再開したいと考えています。

AVFoundation Reference にいくつかの関数があることは知っていますが、それらを正しく実装できません。

Swiftでこれを行う方法を知っている人はいますか?

import UIKit
import AVFoundation


    @IBOutlet var generatedText: UILabel!

@IBAction func buttonSpeakClicked(sender: UIButton){
    var mySpeechSynthesizer:AVSpeechSynthesizer = AVSpeechSynthesizer()
    var mySpeechUtterance:AVSpeechUtterance = AVSpeechUtterance(string:generatedText.text)
    mySpeechUtterance.rate = 0.075

mySpeechSynthesizer .speakUtterance(mySpeechUtterance)
}
4

3 に答える 3

7

AVSpeechSynthesizer クラス リファレンス

これらの方法を試しましたか? - pauseSpeakingAtBoundary:- continueSpeaking

これらは、シンセサイザーの状態を判断するのに役立ついくつかのプロパティ (pausedおよび) です。speaking

次のようなコードが機能するはずです。 mySpeechSynthesizer.pauseSpeakingAtBoundary(AVSpeechBoundary.Immediate)

于 2015-04-09T18:14:27.777 に答える