我正在尝试使用我的二进制时钟为我的最终项目进行编程。
我已经创建了控件,有一个intAlarmHour和intAlarmMinute值。我发现了一些关于在C#中播放声音的文章,但代码并不适合我。这是我到目前为止,在timer1:
下if (DateTime.Now.Hour == intAlarmHour && DateTime.Now.Minute == intAlarmMinute)
System.Media.SoundPlayer sound = new System.Media.SoundPlayer(//unknown format);
sound.PlaySync();
我正在
错误1嵌入语句不能是声明或标记语句C:\ ADixon \ Final \ Binary Project \ BinaryClock \ BinaryClock \ Form1.cs 551 13 BinaryClock
错误2使用未分配的局部变量'sound'C:\ ADixon \ Final \ Binary Project \ BinaryClock \ BinaryClock \ Form1.cs 552 1 BinaryClock
我也不是100%的声音文件格式。我假设我把它扔进项目中的系统资源并链接到它就像我想要的图片一样?它是什么,form1.system.resources.file?
如果我使用System.Media.SoundPlayer方法,允许哪些文件类型?我可以使用.mp3吗?
感谢您的帮助!
答案 0 :(得分:0)
你的第一个问题是'缺乏花括号'。没有花括号的'If'语句只会运行其后的下一行。因此,在您的情况下,因为'声音'声明是有条件的并包含在'if'语句中,所以'sound.Play()'是未分配的。
应该是:
if (DateTime.Now.Hour == intAlarmHour && DateTime.Now.Minute == intAlarmMinute)
{
System.Media.SoundPlayer sound = new System.Media.SoundPlayer(//unknown format);
sound.PlaySync();
}
答案 1 :(得分:0)
您需要使用.wav文件。您可以将其设置为嵌入式资源,这意味着它将捆绑在exe本身内。
点击项目 - >属性 - >资源标签 - >添加资源 - >添加现有文件 - >双击.wav文件。 在“属性窗格”(右下角)中,将“持久性”更改为“嵌入.resx”。
现在你可以使用这样的代码播放声音:
// where "buzzer" below will be the name of the .wav YOU added:
System.Media.SoundPlayer sound = new System.Media.SoundPlayer(Properties.Resources.buzzer);
sound.Play();