I'll report the bug, but this is a very critical feature in my app, so I wonder if there is something that I can do (like possibly some Objective C binding that would replace the problematic command). I am not sure exactly what was the point when this has regressed, but it was working properly at least as of last year.
The problem is weird, but on XCode everything works, so it is a Xamarin issue.
In general it is as simple as:
var synth = new NSSpeechSynthesizer();<br />
synth.StartSpeakingToURL("Some long text that should be at least 500 characters. Repeating one sentence in a loop to create long string for some reason doesn't work, so if this doesn't work copy something from some web site, I don't want to brake copyrights here.", new NSUrl("/Users/username/Desktop/file1.aiff", false));
What happens is that this never gets completed (as said in some cases it may work like very short strings or longer string built from repeating the short string but on all real life long texts I have tried it didn't work). If you use the delegate you can see that it usually stops to work at some position around 250. What is the worse it even blocks NSSpeechSynthesizer from being further called even after quitting the app.
So is there anything I can do? I have spent literary two weeks in trying to figure out the problem.