MediaElement播放列表不起作用

时间:2013-04-01 15:16:46

标签: c# wpf text-to-speech

我正在尝试为Windows Phone做一个TTS应用程序,但我有一点问题。 我的功能是调用Google TTS服务并在MediaElement上播放,这非常有效。

这就是我写的功能

        public void Say(string phrase)
    {
        mediaElement1.Source = new Uri("http://translate.google.com/translate_tts?tl=en&q=" + phrase, UriKind.Absolute));
        mediaElement1.Play();
    }

但是如果我多次调用该函数,例如,在for循环中,它只是说循环的最后一项。例如

for (int i = 0; i < 10; i++)
{
  Say(Convert.ToString(i));
}

然后它只是说'九',不'1,2,3,4,......'

我试图做一个单词'播放列表',该函数将播放。 这是我的代码。

 bool first = true;
    List<Uri> uriTask = new List<Uri>();
    public void Say(string phrase)
    {
        uriTask.Add(new Uri("http://translate.google.com/translate_tts?tl=es&q=" + phrase, UriKind.Absolute));
        if (mediaElement1.CurrentState != MediaElementState.Playing)
        {
            if (first)
            {
                CHECK();
                first = false;
            }
            else
            {
                mediaElement1.MediaEnded += delegate
                {
                    mediaElement1.Position = TimeSpan.Zero;
                    CHECK();
                };

            }
        }
    }




    private void CHECK()
    {
        if (uriTask.Count > 0)
        {
            mediaElement1.Source = uriTask[0];
            mediaElement1.Play();
            uriTask.RemoveAt(0);
        }
    }

感谢。 问候

0 个答案:

没有答案