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 算力,解读结果公开显示在下面。

还没有人解读过这个文件。