1
我想在播放背景音頻時播放Windows Phone 8的語音合成器。但每次,我都會激活語音合成器,背景音頻會停止播放,並在合成器結束後繼續播放。如何在SpeechSynthesizer播放時播放IMFMediaEngine背景音頻
有什麼建議嗎? 謝謝。
下面的一些代碼片段: 背景音頻:在C++中使用IMFMediaEngine,成功播放。
Microsoft::WRL::ComPtr<IMFMediaEngine> m_mediaEngine;
m_mediaEngine->Play();
在C#/ XAML,我有一個XAML頁面的按鈕,當我點擊它,它起着從WP8最新的語音類。播放文字。
using Windows.Phone.Speech.Synthesis;
public async void SpeakText(string text)
{
SpeechSynthesizer speechSynthesizer = new SpeechSynthesizer();
await speechSynthesizer.SpeakTextAsync(text);
}
我試圖把SpeakTextAsync通過線程,但我想我這樣做都是錯的,因爲我還是不能讓音頻在同一時間播放。
private void bubble_Click(object sender, RoutedEventArgs e)
{
App.Manager.SpeakText("hello how are you");
// TRY 1: plays text only, background doesn't play
//new Thread(() =>
//{
// App.Manager.SpeakText(chinese);
//}).Start();
// TRY 2: plays text only, background doesn't play
//Deployment.Current.Dispatcher.BeginInvoke(() =>
//{
// App.Manager.SpeakText(chinese);
//});
// TRY 3: plays text only, background doesn't play
//ThreadPool.QueueUserWorkItem(new WaitCallback(SpeakTextProc));
}
private void SpeakTextProc(Object stateInfo)
{
App.Manager.SpeakText("Hello how are you");
}
僅僅因爲它不被支持並不意味着你現在不能使用它。爲了向後兼容,XNA仍然包含在Windows Phone 8中。而且這是我知道播放音效而不殺背景音樂的唯一途徑。 – Stonetip