OK,先看下代码:
1 using System.Reflection; 2 using System.Media; 3 4 namespace ThePlay 5 { 6 class Program 7 { 8 static void Main(string[] args) 9 {10 string namespaceName = Assembly.GetExecutingAssembly().GetName().Name.ToString(); 11 Assembly assembly = Assembly.GetExecutingAssembly();12 SoundPlayer sp = new SoundPlayer(assembly.GetManifestResourceStream(namespaceName + ".Resources" + ".STEAMBLO.WAV"));13 Console.Write("快看,轮船到了~!");14 sp.Play();15 Console.ReadLine();16 }17 }18 }
“你在第一次坐轮船时,会不会很兴奋?”
“什么?不会,好吧,你淡定的有点儿不正常”
假设个场景,你第一次见到轮船,第一次尝试去坐轮船!你会不会对盆友喊着说:“快看,轮船到了~!”
是的,上面这段代码实现的就是这段场景,当你说过这句话后,轮船也相当应景,就来了几声汽笛声!
好吧,言归正传!
首先要先引用两个类库文件
using System.Reflection; using System.Media;
代码很简单
string namespaceName = Assembly.GetExecutingAssembly().GetName().Name.ToString(); 这段代码是获取前文档命名空间的名称的,也就是对应的“ThePlay”。
Assembly assembly = Assembly.GetExecutingAssembly(); 获取包含当前执行的代码的程序集。
SoundPlayer sp = new SoundPlayer(assembly.GetManifestResourceStream(namespaceName + ".Resources" + ".STEAMBLO.WAV")); namespaceName 是上面获取的空间名称,Resource是音频文件夹的名称,STEAMBLO.WAV 是对应的音频文件! 区分大小写! 不然会导致获取为空! 遗憾的是,只支持.wav格式的音频文件!
什么?还是播放不了?
那是正常现象,因为还有个操作木有完成嘞! 表着急,请听俺慢慢道来~ 哈哈哈!
OK,第一步:找到你要引用的音频文件,右键单击,出现如下菜单,然后找到属性,左键单击;
第二步:找到生成操作,把“内容”改成“嵌入的资源”。
最后,Ctrl+F5,大功告成!
首次技术性博文,欢迎大家指教,谢谢!
更多精彩内容,请加群:225443677