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,大功告成!
首次技術性博文,歡迎大家指教,謝謝!