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