我能找到的每個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