AudioManager.cs
(开头部分) 4KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using NAudio.CoreAudioApi;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AudioManager
{
public class AudioManager
{
private MMDevice device;
private MMDeviceEnumerator DevEnum = new MMDeviceEnumerator();
/// <summary>
/// 取得所有音频输出设备
/// </summary>
/// <returns></returns>
public IEnumerable<MMDevice> GetActiveSpeakers()
{
return DevEnum.EnumerateAudioEndPoints(DataFlow.Render, DeviceState.Active);
/*
foreach (var de in DevEnum.EnumerateAudioEndPoints(DataFlow.Render, DeviceState.Active))
{
Console.WriteLine($"FriendlyName={de.FriendlyName}, ID={de.ID}");
}
*/
}
/// <summary>
/// 取得默认音频输出设备
/// </summary>
/// <returns></returns>
public MMDevice GetDefaultSpeaker() => DevEnum.GetDefaultAudioEndpoint(DataFlow.Render, Role.Multimedia);
/// <summary>
/// 设置默认音频输出设备音量
/// </summary>
/// <param name="scalar">音量范围0.00f - 1.0f (0 - 100)</param>
public void SetDefaultSpeakerVolumeLevelScalar(float scalar)
{
device = DevEnum.GetDefaultAudioEndpoint(DataFlow.Render, Role.Multimedia);
device.AudioEndpointVolume.MasterVolumeLevelScalar = scalar;
}
/// <summary>
/// 设置音频输入输出设备音量
/// </summary>
/// <param name="id">设备ID</param>
/// <param name="scalar">音量范围0.00f - 1.0f (0 - 100)</param>
public void SetDeviceVolumeLevelScalar(string id, float scalar)
{
var dev = DevEnum.GetDevice(id);
dev.AudioEndpointVolume.MasterVolumeLevelScalar = scalar;
}
/// <summary>
/// 设置默认音频输出设备静音|正常
/// </summary>
/// <param name="isMute">是否静音</param>
public void SetDefaultSpeakerMute(bool isMute)
{
device = DevEnum.GetDefaultAudioEndpoint(DataFlow.Render, Role.Multimedia);
device.AudioEndpointVolume.Mute = isMute;
后面还有 50 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。