Функция SwiftUI Speak с использованием AVSpeechSynthesizer не работаетIOS

Программируем под IOS
Ответить
Anonymous
 Функция SwiftUI Speak с использованием AVSpeechSynthesizer не работает

Сообщение Anonymous »

Я использую AVSpeechSynthesizer, чтобы произнести какое-то сообщение в SwiftUI. Ниже мое мнение:

Код: Выделить всё

let speechSynthesizer = AVSpeechSynthesizer()
var body: some View {
ScrollView{
VStack {
displayImage()
Spacer()
displayClassifyingOrError()
if !isClassifying {
displayClassifiedItems()
.onAppear(){
for item in classifier.classifiedItems {
let message = "\(item.item) should go to \(item.bin)"
print("Speaking message: \(message)")
speak(message)
}

}
}

Spacer()
backButton()
}
.onAppear {
classifyImage()
checkESP32Connection()
speak("test message")
}

.navigationBarBackButtonHidden(true)
}
}

func speak(_ text: String) {
let utterance = AVSpeechUtterance(string: text)
utterance.voice = AVSpeechSynthesisVoice(language: "en-US")
utterance.rate = AVSpeechUtteranceDefaultSpeechRate
speechSynthesizer.speak(utterance)
}
Проблема в том, что приложение произносит «тестовое сообщение», а также печатает правильное сообщение для произнесения (пример: элемент x должен попасть в корзину y), но не произносит сообщение. Я пытаюсь добавить задержку, но она тоже не работает. Есть идеи, что происходит не так?

Подробнее здесь: https://stackoverflow.com/questions/789 ... ot-working
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»