我在WPF应用程序中遇到MediaPlayer类的问题 我的项目看起来像这样:
问题是:当我的AboutDialog初始化并出现时,它不会播放AboutDialogSound.mp3。我认为问题是Uri字符串格式,我尝试更改它但我仍然没有工作。
对不起,我不擅长英语。请帮我解决这个问题。提前谢谢。
答案 0 :(得分:3)
至少,您的代码中有两个问题,关于您尝试使用MediaPlayer
播放mp3文件的方式:
bin\debug
文件夹中。所以mp3文件的路径应该是"../../AboutDialogSound.mp3"
。 MediaPlayer
对象声明为局部变量。通过这样做,对象将在变量声明(在本例中为AboutDialog
构造函数)完成的方法之后很快被垃圾收集。因此,如果您设法解决了第一个问题,您将听到播放音频文件片刻,然后突然停止,因为MediaPlayer
播放了GC-ed。将其声明为全局变量而不是本地变量。提示:要检查MediaPlayer
中的失败(例如由于路径错误而找不到文件),请尝试订阅MediaFailed
事件。由于MediaPlayer
不会引发异常,因此会触发MediaFailed
事件。
public partial class AboutDialog
{
private MediaPlayer player;
public AboutDialog()
{
player = new MediaPlayer();
player.MediaFailed += (o, args) =>
{
MessageBox.Show("Media Failed!!");
};
player.Open(new Uri("../../AboutDialogSound.mp3", UriKind.RelativeOrAbsolute));
player.Play();
}
.....
}
答案 1 :(得分:0)
确保资源(mp3文件)在“复制中始终”复制到属性中的“输出目录”。
player.Open(new Uri(System.Environment.CurrentDirectory + @“\Resources\filename.mp3”));
player.Play();