再生する前に SpeechSynthesierStream の持続時間を測定するにはどうすればよいですか?
SpeechSynthesizer ss = new SpeechSynthesizer();
SpeechSynthesisStream sss;
ss.Voice = SpeechSynthesizer.AllVoices[3];
sss = await ss.SynthesizeTextToStreamAsync("Hello world.");
MediaElement mediaElement = new MediaElement();
mediaElement.SetSource(sss, sss.ContentType);
//here I want to get the duration
mediaElement.Play();
このコードは問題なく動作し、「Hello world.」と読み上げます。しばらくすると、mediaElement.NaturalDuration も正しい値になります。しかし、スピーチを再生する前に、できるだけ早くスピーチの長さを知る必要があります。mediaElement.MediaOpen のハンドラを追加しましたが、この「SetSource」はおそらくこのイベントを発生させません。ありがとうございました。