首页 > 编程语言 >C# NAudio 获取控制系统音量

C# NAudio 获取控制系统音量

时间:2025-01-16 14:46:17浏览次数:1  
标签:IWaveProvider 波形 ISampleProvider C# NAudio 音量 播放 音频

https://github.com/naudio/NAudio
NAudio 是一个开源的 .NET 音频库,由 Mark Heath 开发,开源地址:https://github.com/naudio/NAudio 支持多种音频操作,可实现多种API播放与录制、多种不同音频格式、音频格式转换(重采样、位深、声道等)、音频编码、多通道播放、音频效果处理等等。

NAudio安装

image

常用类:

  • WaveIn 表示波形输入, 继承了 IWaveIn, 例如麦克风输入, 或者计算机正在播放的音频流。
  • WaveOut 表示波形输出, 继承了 IWavePlayer, 用来播放音频, 以 IWaveProvider 作为播放源播放音频, 通过拓展方法也支持以 - ISampleProvider 作为播放源播放音频。
  • WaveStream 表示波形流, 它继承了 IWaveProvider, 可以用来作为播放源。
  • WaveFileReader 继承了 WaveStream, 用来读取波形文件。
  • WaveFileWriter 继承了Stream, 用来写入文件, 常用于保存音频录制的数据。
  • AudioFileReader 通用的音频文件读取器, 可以读取波形文件, 也可以读取其他类型的音频文件例如 Aiff, MP3

常用接口:

  • IWaveProvider 波形提供者, 上面已经提到, 是音频播放的提供者, 通过拓展方法可以转换为 ISampleProvider。
  • ISampleProvider 采样提供者, 上面已经提到, 通过拓展方法可以作为 WaveOut 的播放源。

标签:IWaveProvider,波形,ISampleProvider,C#,NAudio,音量,播放,音频
From: https://www.cnblogs.com/vipsoft/p/18674944

相关文章

  • 倍增求lca
    非常重要的东西我甚至模拟赛都不打了来打笔记很简单啊,朴素lca是这样,两个节点,先令深度相等,然后一个一个往上跳直到跳到相同的位置则那个点为两点的lca但是令深度相等与往上跳的过程都要一个一个慢慢跳所以时间复杂度拉满了那么我们能以什么方式优化呢我们可以发现,每个数都可以......
  • elasticsearch之DSL查询结果处理
    搜索的结果可以按照用户指定的方式去处理或展示。排序分页搜索关键词高亮排序elasticsearch默认是根据相关度算分(_score)来排序,但是也支持自定义方式对搜索结果排序。可以排序字段类型有:keyword类型、数值类型、地理坐标类型、日期类型等。普通字段排序keyword、数值、日......
  • JavaScript防抖与节流的运用
    防抖(Debounce)概念:防抖是指在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时。防抖的主要目的是将多次连续触发的事件合并为一次执行,适用于例如输入框输入搜索内容时,避免频繁发送请求,只在用户停止输入一段时间后才发送请求。实现思路:创建一个定时器。......
  • Nacos: 一个动态服务发现与配置管理平台
    Nacos:一个动态服务发现与配置管理平台引言在微服务架构日益普及的今天,服务之间的调用和配置管理变得越来越复杂。为了简化这一过程并提高开发效率,阿里巴巴推出了Nacos——一个易于使用的动态服务发现、配置管理和服务管理平台。Nacos是什么?Nacos(DynamicNamingandCo......
  • GaussDB技术解读——GaussDB架构介绍之集群管理层(CM)关键技术方案
    GaussDBKernelV5集群管理层关键模块如下。图4集群管理层组件设计图CM组件提供了四种服务CMAgent,CMServer,OMMonitor,cm_ctl,与各类实例服务组件(CN,DN,GTM等)一起构成了整个数据库集群系统。cm_ctl通过命令行执行集群的启动、停止、状态查询、主备倒换、备机重......
  • Caffeine 缓存 动态的为每个值设置过期时间
    引入jar<!--本地缓存caffeine--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId></dependency><dependency&......
  • Rundeck使用随笔
    Rundeck使用rd-cli传递参数上传文件1.简介Rundeck是一个开源的运行自动化工具,提供了作业调度、工作流编排和操作自动化功能。通过其命令行工具rd-cli,用户可以方便地运行作业、传递参数,以及上传文件。2.环境准备2.1安装rd-cli安装了rd-cli工具。如果未安装,可以参......
  • MySQL核心揭秘:从查询到修改,彻底理解 Undo Log、Redo Log、Binlog 与 ACID 的关系【转
    1前言在当今数据驱动的时代,数据库系统作为信息存储和管理的核心组件,其性能和可靠性直接影响着应用的稳定性和用户体验。MySQL,作为最流行的开源关系型数据库管理系统之一,被广泛应用于各类互联网应用中。然而,许多开发者和数据库管理员对其内部机制知之甚少,特别是在事务处理和日......
  • 【Eel库】用于制作类似 Electron 的离线 HTML/JS GUI 应用程序
    简介Eel是一个简单的Python库,用于制作类似Electron的离线HTML/JSGUI应用程序,并可以完全访问Python功能和库。Eel托管一个本地Web服务器,让您可以标注Python中的函数,以便从JavaScript调用它们,反之亦然。Eel旨在简化编写简短和简单的GUI应用程序的过......
  • 【Java】若依(ruoyi-cloud)——14.Sentinel支持(服务熔断与降级)
    若依微服务版(ruoyi-Cloud)如何实现熔断和降级?知识前提:对Sentinel的使用有了解若依微服务版启动对nacos服务注册和使用有了解若依微服务版(ruoyi-cloud)中使用sentinel,进行服务熔断与降级。环境要求和前提JDK>=1.8(推荐1.8版本)Mysql>=5.7.0(推荐5.7版本)Redis>=......