3 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個(gè)贊
我參加聚會(huì)有點(diǎn)晚了,但是如果您現(xiàn)在正在尋找的話,有一個(gè)可用的nuget包(AudioSwitcher.AudioApi.CoreAudio)可以簡(jiǎn)化音頻交互。安裝后,它很簡(jiǎn)單:
CoreAudioDevice defaultPlaybackDevice = new CoreAudioController().DefaultPlaybackDevice;
Debug.WriteLine("Current Volume:" + defaultPlaybackDevice.Volume);
defaultPlaybackDevice.Volume = 80;

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個(gè)贊
這是代碼:
using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace Test
{
public class Test
{
private const int APPCOMMAND_VOLUME_MUTE = 0x80000;
private const int APPCOMMAND_VOLUME_UP = 0xA0000;
private const int APPCOMMAND_VOLUME_DOWN = 0x90000;
private const int WM_APPCOMMAND = 0x319;
[DllImport("user32.dll")]
public static extern IntPtr SendMessageW(IntPtr hWnd, int Msg,
IntPtr wParam, IntPtr lParam);
private void Mute()
{
SendMessageW(this.Handle, WM_APPCOMMAND, this.Handle,
(IntPtr)APPCOMMAND_VOLUME_MUTE);
}
private void VolDown()
{
SendMessageW(this.Handle, WM_APPCOMMAND, this.Handle,
(IntPtr)APPCOMMAND_VOLUME_DOWN);
}
private void VolUp()
{
SendMessageW(this.Handle, WM_APPCOMMAND, this.Handle,
(IntPtr)APPCOMMAND_VOLUME_UP);
}
}
}
在dotnetcurry上找到
使用WPF時(shí),您需要使用new WindowInteropHelper(this).Handle而不是this.Handle (感謝Alex Beals)

TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個(gè)贊
如果其他答案中提供的教程過于復(fù)雜,則可以使用keybd_event函數(shù)嘗試實(shí)現(xiàn)這種方式
[DllImport("user32.dll")]
static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, int dwExtraInfo);
用法:
keybd_event((byte)Keys.VolumeUp, 0, 0, 0); // increase volume
keybd_event((byte)Keys.VolumeDown, 0, 0, 0); // decrease volume
- 3 回答
- 0 關(guān)注
- 899 瀏覽
添加回答
舉報(bào)