2014-09-25 12 views
8

Ho implementato la sintesi vocale nella mia app e funziona perfettamente con il codice che utilizzo attualmente. Fondamentalmente un algo crea un testo, e quindi se l'utente fa clic sul pulsante UIB, il testo viene pronunciato.Come faccio a sospendere e riprendere AVSpeechSynthesizer/AVSpeechUtterance in swift?

Sfida: voglio abilitare lo stesso UIButton per mettere in pausa il sintetizzatore, se il pulsante è già stato sfruttato (cioè il testo è attualmente in fase di parlato) e quindi riprendere a parlare dove si era interrotto, se il pulsante viene sfruttato ancora.

So che ci sono alcune funzioni nel Riferimento AVFoundation ma non riesco a implementarle correttamente.

Qualcuno sa come farlo in 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) 
} 
+0

Hai capire questo fuori? Ho bisogno di aiuto anche con questo. – webmagnets

+0

Non temere, se lo sapessi, per favore fammi sapere – KML

+0

@webmagnets Attualmente sono focalizzato su qualcos'altro e sotto una scadenza. Per favore, puoi testare la soluzione suggerita qui sotto? – KML

risposta

4

AVSpeechSynthesizer Class Reference

Hai provato questi metodi? - pauseSpeakingAtBoundary: e - continueSpeaking

e queste sono alcune proprietà, (paused e speaking) che possono aiutare a determinare lo stato del sintetizzatore.

codice come questo dovrebbe funzionare: mySpeechSynthesizer.pauseSpeakingAtBoundary(AVSpeechBoundary.Immediate)

+0

Se qualcuno può modificare la risposta, idealmente con un esempio completo in Swift, accetterò la risposta. – KML

Problemi correlati