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