3C科技 娛樂遊戲 美食旅遊 時尚美妝 親子育兒 生活休閒 金融理財 健康運動 寰宇綜合

Zi 字媒體

2017-07-25T20:27:27+00:00
加入好友
使用C#播放音效(提示聲音)的4種方式 資料來源: https://blog.kkbruce.net/2019/03/csharpformusicplay.html#.YNUtk-gzaUk https://dotblogs.com.tw/hung-chin/2012/03/31/71186 01.Win32 API Beep [DllImport("kernel32.dll")] private static extern int Beep(int dwFreq, int dwDuration); public enum Music { Do = 523, Re = 587, Mi = 659, Fa = 698, So = 784, La = 880, Ti = 988, Do2 = 1046 } // 小蜜峰 Beep((int)Music.Do, 300); Beep((int)Music.Do, 300); Beep((int)Music.So, 300); Beep((int)Music.So, 300); Beep((int)Music.La, 300); Beep((int)Music.La, 300); Beep((int)Music.So, 600); Beep((int)Music.Fa, 300); Beep((int)Music.Fa, 300); Beep((int)Music.Mi, 300); Beep((int)Music.Mi, 300); Beep((int)Music.Re, 300); Beep((int)Music.Re, 300); Beep((int)Music.Do, 600); Beep((int)Music.So, 300); Beep((int)Music.So, 300); Beep((int)Music.Fa, 300); Beep((int)Music.Fa, 300); Beep((int)Music.Mi, 300); Beep((int)Music.Mi, 300); Beep((int)Music.Re, 600); Beep((int)Music.So, 300); Beep((int)Music.So, 300); Beep((int)Music.Fa, 300); Beep((int)Music.Fa, 300); Beep((int)Music.Mi, 300); Beep((int)Music.Mi, 300); Beep((int)Music.Re, 600); Beep((int)Music.Do, 300); Beep((int)Music.Do, 300); Beep((int)Music.So, 300); Beep((int)Music.So, 300); Beep((int)Music.La, 300); Beep((int)Music.La, 300); Beep((int)Music.So, 600); Beep((int)Music.Fa, 300); Beep((int)Music.Fa, 300); Beep((int)Music.Mi, 300); Beep((int)Music.Mi, 300); Beep((int)Music.Re, 300); Beep((int)Music.Re, 300); Beep((int)Music.Do, 600); 02.SystemSounds 類別 //系統音效 SystemSounds.Asterisk.Play(); SystemSounds.Beep.Play(); SystemSounds.Exclamation.Play(); SystemSounds.Hand.Play(); SystemSounds.Question.Play(); 03.SoundPlayer 類別 [WAV檔案] using System.Media; SoundPlayer player = new SoundPlayer(); player.SoundLocation = "媒體檔案路徑01"; player.LoadAsync(); player.PlaySync(); player.SoundLocation = "媒體檔案路徑02"; player.Load(); player.PlaySync(); 04.WMPLib.dll [mp3檔案]  //01.先加入參考 Windows Media Player的COM元件 //02.程式開頭 加上 using WMPLib; //03.實際完整程式碼 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; using System.Threading; using System.Reflection; using WMPLib; namespace ResourceMP3 { public partial class Form1 : Form { public Form1() { InitializeComponent(); WindowsMediaPlayer wmp = new WindowsMediaPlayer(); Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("ResourceMP3.tada.mp3"); //命名空間.mp3檔名 using (Stream output = new FileStream(Path.Combine(Application.StartupPath, "temp.mp3"), FileMode.Create)) { byte[] buffer = new byte[32 * 1024]; int read; while ((read = stream.Read(buffer, 0, buffer.Length)) > 0) { output.Write(buffer, 0, read); } } wmp.PlayStateChange += new _WMPOCXEvents_PlayStateChangeEventHandler(wmp_PlayStateChange); wmp.URL = Path.Combine(Application.StartupPath, "temp.mp3"); wmp.settings.volume = 100; wmp.controls.play(); } void wmp_PlayStateChange(int NewState) { if ((WMPLib.WMPPlayState)NewState == WMPLib.WMPPlayState.wmppsStopped) { this.Close(); } } private void Form1_Shown(object sender, EventArgs e) { if (File.Exists(Path.Combine(Application.StartupPath, "temp.mp3"))==true) { File.Delete(Path.Combine(Application.StartupPath, "temp.mp3")); } } } } 心得: 我會選擇02和03方案

本文由jashliaoeuwordpress提供 原文連結

寫了 5860316篇文章,獲得 23313次喜歡
精彩推薦