我有一个应用程序,我有一些预先录制的文本到语音(因为没有默认支持文本到语音)然后我想像这样播放它们
var mediaElement = new MediaElement();
mediaElement.Source = new Uri("sound.mp3", UriKind.Relative);
mediaElement.Position = new TimeSpan(0);
mediaElement.Play();
但没有任何反应,我是否必须创造一个真正的"在我的UI中控制?我只是想在事件发生时播放这个声音,我没有任何错误或没有任何错误,如果mp3在默认文件夹中则没有。
答案 0 :(得分:4)
它没有播放的原因是因为你没有将它添加到Visual Tree中。以编程方式创建MediaElement
时,需要将其添加到树中的某个位置。您必须在UI中创建“真正的控件”,但不必看到它。
var mediaElement = new MediaElement();
mediaElement.Source = new Uri("sound.mp3", UriKind.Relative);
mediaElement.Position = new TimeSpan(0);
LayoutRoot.Children.Add(mediaElement); //Add to visual tree
mediaElement.Play();
答案 1 :(得分:0)
这取决于声明 mediaElement
后代码中发生的情况。目前,只要您声明它的方法结束,mediaElement
将超出范围,并有资格进行垃圾回收。
您需要:
mediaElement
为某事,可能是您的用户界面mediaElement
成为课堂上的静态字段所有这一切,都是通过模拟器支持的MediaElement
播放?