在 Windows 11 中雖然可以直接將滑鼠游標停留在工具列的喇叭圖示上使用滑鼠滾輪捲動直接調整音量,但是身為一位懶惰的軟體工程師,還是希望能夠自動的調整。搜尋了一下發現 C# 大多數的解決方式都是需要使用 DllImport 導入外部函式庫(DLL),寫一堆不好理解的程式碼才有辦法處理。上網研究了半天後發現了 NAudio 這個套件,讓取得和調整音量變得非常方便。
參考資料:
Github - naudio/NAudio
安裝
先使用 NuGet 安裝 NAudio 套件,或是使用 .NET CLI 執行以下指令安裝
dotnet add package NAudio
程式碼示範
取得和設定音量
using NAudio.CoreAudioApi;
var enumerator = new MMDeviceEnumerator();
// 取得預設的音效輸出裝置
var device = enumerator.GetDefaultAudioEndpoint(DataFlow.Render, Role.Console);
// 取得當前的音量
int volume = (int)(device.AudioEndpointVolume.MasterVolumeLevelScalar * 100);
Console.WriteLine($"目前音量: {volume}%"); // 目前音量: 100%
// 設定音量為 50%
device.AudioEndpointVolume.MasterVolumeLevelScalar = 50 / 100f;
Console.WriteLine("音量已設定為 50%");
取得所有音效輸出裝置音量
var enumerator = new MMDeviceEnumerator();
var devices = enumerator.EnumerateAudioEndPoints(DataFlow.Render, DeviceState.Active);
foreach (var device in devices)
{
int volume = (int)(device.AudioEndpointVolume.MasterVolumeLevelScalar * 100);
Console.WriteLine($"裝置名稱: {device.FriendlyName}, 目前音量: {volume}%");
}
/*
裝置名稱: BenQ EL2870U (NVIDIA High Definition Audio), 目前音量: 100%
裝置名稱: Digital Audio (S/PDIF) (High Definition Audio Device), 目前音量: 90%
裝置名稱: 喇叭 (High Definition Audio Device), 目前音量: 72%
*/
參考資料:
Github - naudio/NAudio
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com