最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

用C# 控制Windows系統(tǒng)音量的實(shí)現(xiàn)方法

 更新時(shí)間:2013年05月15日 11:46:59   作者:  
本篇文章是對(duì)使用C#控制Windows系統(tǒng)音量的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下

C#開(kāi)發(fā)Windows應(yīng)用程序中經(jīng)常需要去控制系統(tǒng)的音量,分兩種方式:

1.使用Win Api控制

2.使用C++ dll控制

Win Api控制:

  使用user32.dll和winmm.dll都可以控制系統(tǒng)音量,區(qū)別是Win系統(tǒng)的版本。winmm.dll Xp環(huán)境下可用,user32.dll Vista及以上版本。

C++ dll控制:

  CoreAudioApi 是C++ 第三方封裝了音量控制,網(wǎng)上下載DLL后再項(xiàng)目中引用即可使用。CoreAudioApi Vista及以上版本支持。

下面給出代碼

1.winmm控制方式,涉及Xp系統(tǒng)波形聲音的左右聲道,高位為左聲道,低位為右聲道:

復(fù)制代碼 代碼如下:

winmm
 [DllImport("winmm.dll", EntryPoint = "waveOutSetVolume")]
 public static extern int WaveOutSetVolume(IntPtr hwo, uint dwVolume);

 private void SetVol(double arg){
     double newVolume = ushort.MaxValue * arg / 10.0;

     uint v = ((uint)newVolume) & 0xffff;
     uint vAll = v | (v << 16);

     int retVal = WaveOutSetVolume(IntPtr.Zero, vAll);
 }

2.user32控制方式:
復(fù)制代碼 代碼如下:

user32
 [DllImport("user32.dll")]
 public static extern IntPtr SendMessageW(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);

 public void SetVol(){
     p = Process.GetCurrentProcess();
     for (int i = 0; i < 5; i++) {
     SendMessageW(p.Handle, WM_APPCOMMAND, p.Handle, (IntPtr)APPCOMMAND_VOLUME_UP);
     }
 }

 private Process p;
 private const int APPCOMMAND_VOLUME_MUTE = 0x80000;
 private const int APPCOMMAND_VOLUME_UP = 0x0a0000;
 private const int APPCOMMAND_VOLUME_DOWN = 0x090000;
 private const int WM_APPCOMMAND = 0x319;

3.CoreAudioApi
復(fù)制代碼 代碼如下:

CoreAudioApi
 Using CoreAudioApi;

 public void SetVol(double arg) {
     device = DevEnum.GetDefaultAudioEndpoint(EDataFlow.eRender, ERole.eMultimedia);
     device.AudioEndpointVolume.MasterVolumeLevelScalar = (float)arg;
 }

 private MMDevice device;
 private MMDeviceEnumerator DevEnum = new MMDeviceEnumerator();

相關(guān)文章

  • C++雙向循環(huán)列表用法實(shí)例

    C++雙向循環(huán)列表用法實(shí)例

    這篇文章主要介紹了C++雙向循環(huán)列表,實(shí)例分析了C++雙向循環(huán)列表的創(chuàng)建、輸出、添加、刪除、移動(dòng)的相關(guān)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • 淺談C++中的引用和指針

    淺談C++中的引用和指針

    這篇文章主要介紹了淺談C++中的引用和指針,C++允許為已定義的變量再起一個(gè)新的別名,稱(chēng)為變量的引用名,引用名看起來(lái)像是一個(gè)變量名,但它是一種特殊變量,稱(chēng)為引用變量,或簡(jiǎn)稱(chēng)為引用,需要的朋友可以參考下
    2023-08-08
  • Swift編程中的泛型解析

    Swift編程中的泛型解析

    這篇文章主要介紹了Swift編程中的泛型解析,是Swift入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-11-11
  • VC6.0常用快捷鍵大全

    VC6.0常用快捷鍵大全

    這篇文章主要介紹了VC6.0常用快捷鍵大全,非常實(shí)用,需要的朋友可以參考下
    2014-08-08
  • C++利用VLC庫(kù)制作音視頻的示例代碼

    C++利用VLC庫(kù)制作音視頻的示例代碼

    這篇文章主要為大家詳細(xì)介紹了C++如何利用VLC庫(kù)制作音視頻,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以了解一下
    2024-01-01
  • C++引用的詳細(xì)解釋

    C++引用的詳細(xì)解釋

    以下是對(duì)C++中引用的使用進(jìn)行了詳細(xì)的總結(jié)介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助,希望能夠給你帶來(lái)幫助
    2021-11-11
  • C語(yǔ)言中結(jié)構(gòu)體與內(nèi)存對(duì)齊實(shí)例解析

    C語(yǔ)言中結(jié)構(gòu)體與內(nèi)存對(duì)齊實(shí)例解析

    C語(yǔ)言結(jié)構(gòu)體對(duì)齊也是老生常談的話題了,基本上是面試題的必考題,這篇文章主要給大家介紹了關(guān)于C語(yǔ)言中結(jié)構(gòu)體與內(nèi)存對(duì)齊的相關(guān)資料,需要的朋友可以參考下
    2021-07-07
  • C語(yǔ)言實(shí)現(xiàn)房屋管理系統(tǒng)

    C語(yǔ)言實(shí)現(xiàn)房屋管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)房屋管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • QT窗口/控件置頂方法舉例詳解

    QT窗口/控件置頂方法舉例詳解

    我們使用QT進(jìn)行界面開(kāi)發(fā)時(shí),可能會(huì)遇到需要將窗口置頂?shù)那闆r,下面這篇文章主要給大家介紹了關(guān)于QT窗口/控件置頂方法的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • C++ OpenCV實(shí)現(xiàn)圖像雙三次插值算法詳解

    C++ OpenCV實(shí)現(xiàn)圖像雙三次插值算法詳解

    圖像雙三次插值的原理,就是目標(biāo)圖像的每一個(gè)像素都是由原圖上相對(duì)應(yīng)點(diǎn)周?chē)?x4=16個(gè)像素經(jīng)過(guò)加權(quán)之后再相加得到的。本文主要介紹了通過(guò)C++ OpenCV實(shí)現(xiàn)圖像雙三次插值算法,需要的可以參考一下
    2021-12-12

最新評(píng)論

洪泽县| 鹰潭市| 临猗县| 龙门县| 汉阴县| 安塞县| 绥阳县| 永福县| 黄梅县| 大姚县| 贡山| 施秉县| 县级市| 邛崃市| 汾阳市| 德格县| 浦县| 广元市| 楚雄市| 平凉市| 酉阳| 启东市| 肇庆市| 湟中县| 阳泉市| 宾阳县| 隆化县| 垦利县| 芦山县| 新巴尔虎右旗| 荔波县| 扶风县| 怀远县| 沛县| 垦利县| 新泰市| 贺兰县| 工布江达县| 云阳县| 温宿县| 汉沽区|