J'essaie de créer une fonction de synthèse vocale et j'obtiens l'erreur:
Initializer for conditional binding must have Optional type, not 'AVAudioInputNode'
guard let inputNode = audioEngine.inputNode else {
fatalError("Audio engine has no input node")
}
La propriété AVAudioEngine
de inputNode
n'est pas facultative. Le moteur audio crée un singleton à la demande lors du premier accès à inputNode. Cela ne peut pas être nul et à cause de cela, le gardien n'a pas de sens.
Donc, retirez simplement le garde et utilisez audioEngine.inputNode
tel quel. Il ne peut pas s'agir de nil
.
Vous devez toujours vous assurer que le inputNode
est connecté à quelque chose avant de l'utiliser:
Vérifiez le format d'entrée du nœud d'entrée (en particulier, le format matériel) pour une fréquence d'échantillonnage non nulle et un nombre de canaux pour voir si l'entrée est activée.
(à partir de la documentation d'Apple)