XWLで作成されたすべてのUWPテキスト読み上げサンプルでは、XAMLで作成されたMediaElementコントロールを使用しています。例えば、正常に動作します。このような何か、:XAML MediaElementを使用しないUWP音声合成
using namespace Windows::Media::SpeechSynthesis;
//..........
void App::MainPage::buttonSpeak_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
{
create_task(synthesizer->SynthesizeTextToStreamAsync(L"I am ready."))
.then([this](SpeechSynthesisStream ^stream)
{
MediaElement ^media = mediaElement; //created in a separate XAML file
media->AutoPlay = true;
media->SetSource(stream, stream->ContentType);
media->Play();
});
}
どのように私はそれが(私の場合には、ホログラフィックのDirectXアプリケーション)XAMLベースのインターフェイスなしで動作するように適応していますか?プログラムでMediaElementを作成しようとしました。 g。 MediaElement ^media = ref new MediaElement();
、それは常に"The application called an interface that was marshalled for a different thread"
例外をスローします。
ここにはドキュメントがあります:https://docs.microsoft.com/en-us/uwp/api/windows.media.speechsynthesis.speechsynthesizer – pollaris