LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

C# 实现播放音频文件的方法与示例

admin
2024年7月3日 9:27 本文热度 958

引言

在项目开发过程中,有时需要用到播放音频文件。例如,在程序出现异常或操作成功时播放特定音效提醒用户。在C# 中是使用什么方法来播放音效文件,又有几种方法可以实现,本文将介绍几种实现的方法。

方法

1、播放系统事件的声音

使用 System.Media 命名空间的 SystemSounds 类,它只能播放系统定义的几个声音,如 Question、Beep、Asterisk、Hand、Exclamation。
示例代码:
using System;using System.Media;namespace Fountain.WinConsole.SoundDemo{    internal class Program    {        static void Main(string[] args)        {            SystemSounds.Question.Play();            Console.ReadKey();            SystemSounds.Beep.Play();            Console.ReadKey();            SystemSounds.Asterisk.Play();            Console.ReadKey();            SystemSounds.Hand.Play();            Console.ReadKey();            SystemSounds.Exclamation.Play();            Console.ReadKey();        }    }}

2、使用 SoundPlayer 播放声音

使用 System.Media 命名空间的 SoundPlayer 类,可以方便播放wav 类型的声音文件。
方法描述
Load同步加载声音文件。
LoadAsync用新线程加载声音文件。
Play用新线程播放声音文件。
PlaySync阻塞进程,播放完毕后才会执行后面的代码。
PlayLooping用新线程循环播放声音文件。
Stop停止播放
示例代码:
using System;using System.Media;using System.Threading;namespace Fountain.WinConsole.TextToSpeech{    internal class Program    {        static void Main(string[] args)        {            #region 用属性指定声音文件位置            SoundPlayer soundPlayer = new SoundPlayer();            // 声音文件在执行程序的 Sound 目录下            soundPlayer.SoundLocation = @"Sound\Error.wav";            // 加载            soundPlayer.Load();            // 阻塞进程,播放完毕后才会执行后面的代码            soundPlayer.PlaySync();            #endregion            #region 在构造方法指定声音文件位置            SoundPlayer errorSoundPlayer = new SoundPlayer(@"Sound\Error.wav");            // 循环播放            errorSoundPlayer.PlayLooping();            //             Thread.Sleep(6000);            //停止播放            errorSoundPlayer.Stop();            #endregion            Console.ReadKey();        }    }}

3、使用Windows API函数播放

调用外部 winmm.dll 文件,使用其提供声音播放函数,如 mciSendString 实现对声音文件的播放,该函数支持播放 mp3文件。
示例代码:
using System;using System.Runtime.InteropServices;using System.Text;using System.Threading;namespace Fountain.WinConsole.TextToSpeech{    internal class Program    {        [DllImport("winmm.dll", CharSet = CharSet.Auto)]        public static extern int mciSendString(string command, StringBuilder returnString, int uReturnLength, int hwndCallback);
       static void Main(string[] args)        {            string aliasName = "wavsong";            string wavFileName = @"C:\Error.wav";            //打开一个媒体文件            mciSendString(string.Format("open \"{0}\" alias {1}", wavFileName, aliasName), null, 0, 0);            // 播放媒体            mciSendString(string.Format("play {0}",aliasName), null, 0, 0);            Thread.Sleep(2000);            //  暂停媒体播放            mciSendString(string.Format("pause {0}",aliasName), null, 0, 0);            // 关闭媒体播放            mciSendString(string.Format("close {0}",aliasName), null, 0, 0);            Console.ReadKey();        }    }}

小结

以上介绍了三种播放音频文件的方法,当然还有其它方法可以实现,这就不逐一提供示例介绍。如使用DirectX、Windows Media Player组件或者三方库等。


该文章在 2024/7/3 9:29:08 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved