C#实现用于操作wav声音文件的类实例
作者:feige 发布时间:2021-08-15 22:06:25
标签:C#,wav,声音文件,类
本文实例讲述了C#实现用于操作wav声音文件的类。分享给大家供大家参考。具体如下:
有了这个C#类,我们可以很轻易的调用本地wav文件进行同步播放或者异步播放,大大简化了对wav文件的操作过程,如果你需要在项目中调用wav文件进行声音播放,可以使用这个C#类。
using System;
using System.Media;
namespace DotNet.Utilities
{
/// <summary>
/// 处理多媒体的公共类
/// </summary>
public class MediaHandler
{
#region 同步播放wav文件
/// <summary>
/// 以同步方式播放wav文件
/// </summary>
/// <param name="sp">SoundPlayer对象</param>
/// <param name="wavFilePath">wav文件的路径</param>
public static void SyncPlayWAV(SoundPlayer sp, string wavFilePath)
{
try
{
//设置wav文件的路径
sp.SoundLocation = wavFilePath;
//使用异步方式加载wav文件
sp.LoadAsync();
//使用同步方式播放wav文件
if (sp.IsLoadCompleted)
{
sp.PlaySync();
}
}
catch (Exception ex)
{
string errStr = ex.Message;
throw ex;
}
}
/// <summary>
/// 以同步方式播放wav文件
/// </summary>
/// <param name="wavFilePath">wav文件的路径</param>
public static void SyncPlayWAV(string wavFilePath)
{
try
{
//创建一个SoundPlaryer类,并设置wav文件的路径
SoundPlayer sp = new SoundPlayer(wavFilePath);
//使用异步方式加载wav文件
sp.LoadAsync();
//使用同步方式播放wav文件
if (sp.IsLoadCompleted)
{
sp.PlaySync();
}
}
catch (Exception ex)
{
string errStr = ex.Message;
throw ex;
}
}
#endregion
#region 异步播放wav文件
/// <summary>
/// 以异步方式播放wav文件
/// </summary>
/// <param name="sp">SoundPlayer对象</param>
/// <param name="wavFilePath">wav文件的路径</param>
public static void ASyncPlayWAV(SoundPlayer sp, string wavFilePath)
{
try
{
//设置wav文件的路径
sp.SoundLocation = wavFilePath;
//使用异步方式加载wav文件
sp.LoadAsync();
//使用异步方式播放wav文件
if (sp.IsLoadCompleted)
{
sp.Play();
}
}
catch (Exception ex)
{
string errStr = ex.Message;
throw ex;
}
}
/// <summary>
/// 以异步方式播放wav文件
/// </summary>
/// <param name="wavFilePath">wav文件的路径</param>
public static void ASyncPlayWAV(string wavFilePath)
{
try
{
//创建一个SoundPlaryer类,并设置wav文件的路径
SoundPlayer sp = new SoundPlayer(wavFilePath);
//使用异步方式加载wav文件
sp.LoadAsync();
//使用异步方式播放wav文件
if (sp.IsLoadCompleted)
{
sp.Play();
}
}
catch (Exception ex)
{
string errStr = ex.Message;
throw ex;
}
}
#endregion
#region 停止播放wav文件
/// <summary>
///
/// </summary>
/// <param name="sp">SoundPlayer对象</param>
public static void StopWAV(SoundPlayer sp)
{
sp.Stop();
}
#endregion
}
}
希望本文所述对大家的C#程序设计有所帮助。


猜你喜欢
- 前言在上一篇文章中,我们分析了Spring中Bean的实例化过程,在结尾我们知道了虽然bean的实例化完成了,但是其中的属性还没有被注入,今
- 本文实例讲述了C#画图之饼图折线图的实现方法,是C#程序设计中非常实用的技巧。分享给大家供大家参考。具体方法分析如下:显示图像的控件定义如下
- Android开发中,难免会遇到需要加解密一些数据内容存到本地文件、或者通过网络传输到其他服务器和设备的问题,但并不是使用了加密就绝对安全了
- 使用applicationContext.xml配置文件SpringBoot默认是通过Java代码进行依赖注入,但也为xml形式的依赖注入提
- 经过一番的探索,终于搞清楚关键字async/await 在.net4.5之后可用的巧妙之处,在这里记录一下也与大家分享一下个人的心得体会as
- 本文实例为大家分享了C#生成唯一订单号的具体代码,供大家参考,具体内容如下根据GUID+DateTime.Now.Ticks生产唯一订单号/
- 本文实例讲述了C#控制台进行文件读写的方法。分享给大家供大家参考。具体如下:C#控制台进行文件写入:using System;using S
- 1.保存对象到文件中Java语言只能将实现了Serializable接口的类的对象保存到文件中,利用如下方法即可:public static
- 继续我们的源码解析,上一篇文章我们介绍了Activity的启动流程,一个典型的场景就是Activity a 启动了一个Activity b,
- C#开发,收到下位机串口数据(温度信息),可能是正数也可能是负数,如何转换?第一反应是想起书本上的理论,无符号数表示范围是多少到多少,有符号
- maven打包时候修改包名称带上git版本号和打包时间使用 maven 插件 git-commit-id-plugin 可以获取项目的git
- 前言最近在研究串口通讯,其中有几个比较重要的概念,RS-232这种适配于上位机和PC端进行连接,RS-232只限于PC串口和设备间点对点的通
- 嗯,就是BASE64,不用多想,本来计划是要跟上一篇字符串压缩一起写的,用来实现将一个文件可以用json或者text等方式进行接口之间的传输
- 1、创建实体属性标记public class CellAttribute : Attribute {&n
- 前言最近我在项目写了几万行代码,小伙伴担心会让程序启动速度变慢,所以本渣就来做测试。 本渣使用了代码创建器,创建了 1000 个垃圾文件,这
- 最近做了很多项目,不同的系统,不同的部署方式,这里做个记录1.在jar包目录新建一个start.bat 文件,然后写入启动命令j
- Unity3D的API提供了很多的功能,但是很多流程还是会自己去封装一下去。当然现在网上也有很多的框架可以去下载使用,但是肯定不会比自己写的
- 前言C# 语言是在2000发布的,至今已正式发布了7个版本,每个版本都包含了许多令人兴奋的新特性和功能更新。同时,C# 每个版本的发布都与同
- 前言对于Java程序员,可以说对于ArrayList和LinkedList可谓是十分熟悉了对于ArrayList和LinkedList,他们
- 先略看题目:1 请简述async函数的编译方式2 请简述Task状态机的实现和工作机制3 请简述awai