2

バックグラウンドオーディオの再生中にWindowsPhone8の音声合成装置を再生したい。しかし、毎回、Speech Synthesizerをアクティブにすると、バックグラウンドオーディオの再生が停止し、シンセサイザーが終了すると再開します。

助言がありますか?ありがとう。

以下のいくつかのコードスニペット:バックグラウンドオーディオ: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 を使用して 2 つの個別のオーディオ ストリームを取得できましたが、Windows Phone 8 でのさらなる開発では XNA がサポートされていないことがわかりました。

于 2012-12-10T16:54:40.223 に答える