我知道有很多线程都有同样的主题,但由于某种原因我还不明白,这对我不起作用。
我有这个项目树:
我将alarm.wav嵌入到Project-> Properties-> Resources菜单中的.resx文件中。
我尝试了不同的代码组合但没有任何效果。
目前这是我正在尝试的代码。
using System;
using System.Media;
using System.Windows.Forms;
using System.Threading;
using System.Globalization;
using System.ComponentModel;
using System.Resources;
using AlarmForm;
namespace Alarm
{
public partial class Form1 : Form
{
private bool estado = false;
private SoundPlayer sonido;
public Form1()
{
InitializeComponent();
ResourceManager resources = new ResourceManager(typeof(Form1));
sonido = new SoundPlayer(resources.GetStream("alarma"));
}
}
}
已编辑:错误我发现尝试使用Alarm.Properties
答案 0 :(得分:2)
为什么在使用resources.GetStream()
直接链接文件时尝试使用Alarm.Properties
?我相信它会容易得多。我发现您还忘记播放链接到代表新sonido
的{{1}}的声音文件。这是一个简单的示例,展示了如何使用SoundPlayer
示例强>
SoundPlayer
请注意:您可以通过using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Resources;
using System.Media;
using AlarmForm.
using AlarmForm.Properties; //Required to call 'Resources' directly
namespace Alarm
{
public partial class Form1 : Form
{
private bool estado = false;
private SoundPlayer sonido;
public Form1()
{
InitializeComponent();
//ResourceManager resources = new ResourceManager(typeof(Form1)); //We do not actually need this
sonido = new SoundPlayer(Resources.alarma); //Initialize a new SoundPlayer linked to our sound file (or Alarm.Properties.Resources.alarma if Alarm.Properties was not imported)
sonido.Play(); //Required if you would like to play the file
}
}
}
SoundPlayer
随时停止sonido.Stop()
播放,sonido
代表一个新的名称类SoundPlayer
如果试图调用public partial class Form1: Form
的空格是静态的,则在sonido
下定义。
谢谢, 我希望你觉得这很有帮助:)