모든 UWP TTS (text-to-speech) 샘플은 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를 만들려고했습니다. 지. 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