我能找到的每个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();
});
}
如何适应它没有基于XAML的工作界面(全息DirectX程序,在我的情况)?我已经尝试以编程方式创建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