C#實(shí)現(xiàn)用于操作wav聲音文件的類實(shí)例
本文實(shí)例講述了C#實(shí)現(xiàn)用于操作wav聲音文件的類。分享給大家供大家參考。具體如下:
有了這個(gè)C#類,我們可以很輕易的調(diào)用本地wav文件進(jìn)行同步播放或者異步播放,大大簡化了對wav文件的操作過程,如果你需要在項(xiàng)目中調(diào)用wav文件進(jìn)行聲音播放,可以使用這個(gè)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
{
//設(shè)置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
{
//創(chuàng)建一個(gè)SoundPlaryer類,并設(shè)置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
{
//設(shè)置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
{
//創(chuàng)建一個(gè)SoundPlaryer類,并設(shè)置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#程序設(shè)計(jì)有所幫助。
- c# 播放聲音的四種方法
- 教你如何用C#制作文字轉(zhuǎn)換成聲音程序
- C#實(shí)現(xiàn)通過winmm.dll控制聲音播放的方法
- C# winform中窗口關(guān)閉按鈕的隱藏與禁用詳解
- C# WinForm-Timer控件的使用
- C#用Topshelf創(chuàng)建Windows服務(wù)的步驟分享
- C# Winform中如何繪制動(dòng)畫示例詳解
- C# Winform調(diào)用百度接口實(shí)現(xiàn)人臉識別教程(附源碼)
- C# Winform程序?qū)崿F(xiàn)防止多開的方法總結(jié)【親測】
- C#調(diào)用Win32的API函數(shù)--User32.dll
- C# Winfrom實(shí)現(xiàn)Skyline畫直線功能的示例代碼
- c# 通過WinAPI播放PCM聲音
相關(guān)文章
C#實(shí)現(xiàn)快遞api接口調(diào)用方法
這篇文章主要介紹了C#實(shí)現(xiàn)快遞api接口調(diào)用方法,主要是通過快遞API網(wǎng)接口的服務(wù),使用的時(shí)候直接申請個(gè)接口UID即可,有需要的小伙伴來參考下吧。2015-03-03
深入理解C#索引器(一種支持參數(shù)的屬性)與屬性的對比
本篇文章是對C#索引器(一種支持參數(shù)的屬性)與屬性的對比進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
DataGridView實(shí)現(xiàn)點(diǎn)擊列頭升序和降序排序
這篇文章介紹了DataGridView實(shí)現(xiàn)點(diǎn)擊列頭升序和降序排序的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02
C#里SuperSocket庫不能發(fā)現(xiàn)命令的原因
這篇文章主要介紹C#里SuperSocket庫不能發(fā)現(xiàn)命令的原因,在使用SuperSocket來寫服務(wù)器的過程中,這是一個(gè)非??焖俚拈_發(fā)方式,也非常好用。不過學(xué)習(xí)的曲線有點(diǎn)高,在使用的過程中經(jīng)常會(huì)遇到各種各樣的問題。下面來看看學(xué)習(xí)舉例說明吧2021-10-10
Unity 從UI中拖拽對象放置并拖動(dòng)效果 附demo
最近新接了個(gè)需求,要求模擬場景并生成3D對象,對象可以跟隨鼠標(biāo)移動(dòng)效果,今天小編把我實(shí)現(xiàn)的demo分享到腳本之家平臺(tái),對Unity UI拖拽相關(guān)知識感興趣的朋友跟隨小編一起學(xué)習(xí)吧2021-05-05
C#構(gòu)造函數(shù)在基類和父類中的執(zhí)行順序
這篇文章介紹了C#構(gòu)造函數(shù)在基類和父類中的執(zhí)行順序,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04

