1

再生する前に 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」はおそらくこのイベントを発生させません。ありがとうございました。

4

1 に答える 1