首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在播放SpeechSynthesizer的同时播放IMFMediaEngine背景音频

如何在播放SpeechSynthesizer的同时播放IMFMediaEngine背景音频
EN

Stack Overflow用户
提问于 2012-11-19 16:23:46
回答 1查看 788关注 0票数 2

我想在播放背景音频的同时播放Windows Phone 8的语音合成器。但每次我启动语音合成器,背景音频就会停止播放,并在合成器结束后恢复播放。

有什么建议吗?谢谢。

下面的一些代码片段:背景音频:在C++中使用IMFMediaEngine,成功播放。

代码语言:javascript
复制
Microsoft::WRL::ComPtr<IMFMediaEngine> m_mediaEngine;
m_mediaEngine->Play();

在C# / XAML中,我有一个带有按钮的XAML页面,当我单击它时,它会从wp8的最新语音类中播放。播放文本。

代码语言:javascript
复制
using Windows.Phone.Speech.Synthesis; 


public async void SpeakText(string text)
{
    SpeechSynthesizer speechSynthesizer = new SpeechSynthesizer();
    await speechSynthesizer.SpeakTextAsync(text);
}

我试着让SpeakTextAsync通过线程,但我猜我做错了,因为我仍然不能让两个音频同时播放。

代码语言:javascript
复制
    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");
   }
EN

回答 1

Stack Overflow用户

发布于 2012-12-11 00:54:40

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13449991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档