[résolu]Problème avec la méthode delegate: speechSynthesizer:didFinishSpeaking
Bonjour tout le monde, petite recherche sans succès donc je me tourne directement vers vous.
Comme dit dans le titre je lit en long, en large et en travers le bouquin d'Aaron Hillgass. J'en suis rendu au chapitre 6 sur le SpeechSynthetizer et les delegates.
J'ai donc suivi les directives, mettre mon objet AppController comme delegate de l'objet speechSynth:
J'ai bien vérifié au débugger normalement c'est ok.
Ensuite j'implémente la méthode delegate suivante dans AppController.m
Mais bizarrement elle n'est jamais lu??? Alors que le synthèse vocale semble pourtant bien se terminer. :why?:
Le bouquin ne dit pas de la déclarer dans AppController.h, je trouve ça un peu bizarre alors j'ai tester les deux mais rien n'y fait.
Voilà , je fouine un peu partout pour trouver mais je dois pas bien faire quelques choses.
Merci si quelqu'un sais d'où cela peu provenir.
ps:Peut-on mettre le code en plus gros sur ce forum, car on voit pas grand chose je trouve.
A++
Comme dit dans le titre je lit en long, en large et en travers le bouquin d'Aaron Hillgass. J'en suis rendu au chapitre 6 sur le SpeechSynthetizer et les delegates.
J'ai donc suivi les directives, mettre mon objet AppController comme delegate de l'objet speechSynth:
[speechSynth setDelegate:self]
J'ai bien vérifié au débugger normalement c'est ok.
Ensuite j'implémente la méthode delegate suivante dans AppController.m
[size=14pt]- (void)speechSynthetizer:(NSSpeechSynthesizer *)sender <br /> didFinishSpeaking:(BOOL)complete<br />{<br /> NSLog(@"Fin de synthèse: %@",complete);<br />}[/size]
Mais bizarrement elle n'est jamais lu??? Alors que le synthèse vocale semble pourtant bien se terminer. :why?:
Le bouquin ne dit pas de la déclarer dans AppController.h, je trouve ça un peu bizarre alors j'ai tester les deux mais rien n'y fait.
Voilà , je fouine un peu partout pour trouver mais je dois pas bien faire quelques choses.
Merci si quelqu'un sais d'où cela peu provenir.
ps:Peut-on mettre le code en plus gros sur ce forum, car on voit pas grand chose je trouve.
A++
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Si le NSLog s'exécute, il y aura vraissemblalement plantage de ton appli, car tu utilises pour afficher la variable complete.
Or complete n'est pas un objet (c'est un BOOL qui correspond à un int), et lui demande un objet...
Remplace par %i !
C'est par ailleurs pourquoi NSLog n'affiche rien (par contre tu devrais avoir un beau message de plantage dans la console Xcode)
Par contre je vous ai embêter pour pas grand chose, c'est un pauvre problème de syntaxe, j'ai écrit:
speechSynthetizer au lieu de speechSynthesizer.
J'ai pas encore pris l'habitude de copier/coller les noms via l'API.
Merci en tout cas de cette belle réactivitée! A bientôt.
Tu peux activer la complétion automatique Preferences > Code Sense
Puis choisir un raccourci clavier dans Key Bindings
Tu tapes le début speechS , tu attends , et cela évite ce genre d'erreurs (enfin presque).
Si le mot proposé n'est pas celui qu'il te faut, tu utilises le raccourci clavier que tu t'es choisi (Ctrl . pour moi) ou la pop-list pour en prendre un autre.
Le key binding du next place holder est également appréciable
Sinon pour les Key Bindings c'est qu'elle touche le caractères "^"?
Merci encore
ps:si quelqu'un sait pour augmenter la taille du texte de code sur ce forum , merci aussi
C'est effectivement embêtant
C'est la touche ctrl, comme dans le terminal
⌘+
Rien trouvé dans la doc du forum pour le changement de taille dans le message lui-même.