【发布时间】:2016-03-15 03:22:31
【问题描述】:
我试图在单击我的应用程序中的按钮时更改我的 AVSpeechUtterance 的语速属性的值。然后,当我按下“说话”按钮时,我希望这个值继续存在。
如果这个解释不够清楚,想象一下:
共有三个按钮:一、二和三。 当用户按下 1 时,话语速率的值会发生变化(2 和 3 也是如此)。
然后在按下前三个按钮之一后,用户按下另一个按钮来激活话语。该话语将继承速率值并将其应用于语音。
这是我尝试过但不起作用的代码:
import UIKit
import AVFoundation
class SecondViewController: UIViewController {
@IBOutlet var minutesLabel: UITextField!
@IBOutlet var secondsField: UITextField!
func speak(sender: AnyObject) {
let speechUtterance = AVSpeechUtterance(string:exampleSpeech)
speechSynthesizer.speakUtterance(speechUtterance)
}
@IBOutlet var result: UILabel!
@IBAction func verySlow(sender: UIButton) {
let verySlowButtonPressed = true
let talkingSpeed = 90
let minutesValue : Double = (minutesLabel.text as NSString!).doubleValue
let secondsValue = (secondsField.text as NSString!).doubleValue
let secondsToMinutes = secondsValue / 60
let compiledTime = Double(minutesValue) + Double(secondsToMinutes)
let resultingWords = Double(compiledTime) * Double(talkingSpeed)
let resultCeiling = ceil(resultingWords)
result.text = "\(String(format: "%.0f", resultCeiling)) words"
if verySlowButtonPressed {
speechUtterance.rate = 0.25
speechUtterance.pitchMultiplier = 0.25
speechUtterance.volume = 0.75
}
}
@IBAction func speakButton(sender: AnyObject) {
speak(exampleSpeech)
}
【问题讨论】: