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"はおそらくこのイベントを発生させません。ありがとうございました。
ビジュアルツリーにはどこで 'MediaElement'を付けますか? MediaOpenはビジュアルツリーにアタッチされ、 'NaturalDuration'が' MediaOpen'イベント内で利用可能になるまで起動しません。 – keyboardP
mediaElementをビジュアルツリーに添付した後、MediaOpenedイベントが機能し始めました。ご協力ありがとうございます。 – hoacin
あなたは歓迎です - 私は答えとしてそれを追加しました:) – keyboardP