我有一个完全没有任何视觉效果的声音播放器类,我正在尝试使用 aMediaElement
来播放我的声音。在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
by时SoundPlayer
,它工作得非常好。我能找到的唯一区别是我没有将它嵌入到 XAML 代码中。这是一个要求吗?