【发布时间】:2013-10-25 13:23:57
【问题描述】:
我有一个完全没有任何视觉效果的声音播放器类,我正在尝试使用MediaElement 来播放我的声音。在所有测试项目中,MediaElement 嵌入在 XAML 代码中,它工作正常。但是,在我的纯代码版本中,即使文件已完美加载(我可以在调试器中看到),它也不会播放任何内容。我正在执行以下操作:
public class MySoundPlayer
{
private MediaElement player = new MediaElement();
public MySoundPlayer()
{
player.LoadedBehavior = MediaState.Manual;
player.UnloadedBehavior = MediaState.Stop;
player.Volume = 1.0;
player.MediaEnded += player_MediaEnded;
player.MediaOpened += playerr_MediaOpened;
player.MediaFailed += player_MediaFailed;
}
private void player_MediaEnded(object sender, EventArgs e)
{
player.Stop();
Debug.WriteLine("Stopped");
}
private void player_MediaOpened(object sender, EventArgs e)
{
Debug.WriteLine("Opened");
}
private void player_MediaFailed(object sender, ExceptionRoutedEventArgs e)
{
Debug.WriteLine("Failed");
}
public void PlayFile(string fileName, bool loop)
{
player.Source = new Uri(fileName, UriKind.RelativeOrAbsolute);
player.Play();
player.Volume = 1.0;
}
}
我仔细检查了文件是否存在,它确实存在(甚至正确加载),并且我的声音已打开。 :-) 另外,当我将MediaElement 更改为SoundPlayer 时,它工作得非常好。我能找到的唯一区别是我没有将它嵌入到 XAML 代码中。这是要求吗?
【问题讨论】:
标签: c# wpf xaml audio mediaelement