2

我想在播放背景音频时播放 Windows Phone 8 的语音合成器。但每次,我激活语音合成器,背景音频停止播放,并在合成器完成后恢复。

有什么建议么?谢谢。

下面的一些代码片段: 背景音频:在 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");
   }
4

1 回答 1

0

在 Windows Phone 7 上,我能够使用 XNA 获得两个单独的音频流,但看到 XNA 不支持在 Windows Phone 8 上进行进一步开发,这不是一个很好的解决方案,祝你好运。

于 2012-12-10T16:54:40.223 回答