带均衡器的声音[关闭]

2023-11-27

我正在尝试使用 C# 创建均衡器。 经常看 NAudio;但是我找不到任何可以与 NAudio 配合使用的均衡器。 考虑到我有点迷失;我来这里是想询问一种在 C# 中创建或实现均衡器的方法。

注意:我已经尝试过 System.Media.SoundPlayer;但 SoundPlayer 甚至不支持任何与 DSP 有关的内容。 我如何实现均衡器和/或是否有任何音频库可以与外部“纯”音频一起使用?


那么是否有另一个音频库可以与外部“纯”音频一起使用?

是的,有一个:https://cscore.codeplex.com

根据均衡器样本,您可以这样使用均衡器:

using CSCore;
using CSCore.Codecs;
using CSCore.SoundOut;
using CSCore.Streams;
using System;
using System.Threading;

...

private static void Main(string[] args)
{
    const string filename = @"C:\Temp\test.mp3";
    EventWaitHandle waitHandle = new AutoResetEvent(false);

    try
    {
        //create a source which provides audio data
        using(var source = CodecFactory.Instance.GetCodec(filename))
        {
            //create the equalizer.
            //You can create a custom eq with any bands you want, or you can just use the default 10 band eq.
            Equalizer equalizer = Equalizer.Create10BandEqualizer(source);

            //create a soundout to play the source
            ISoundOut soundOut;
            if(WasapiOut.IsSupportedOnCurrentPlatform)
            {
                soundOut = new WasapiOut();
            }
            else
            {
                soundOut = new DirectSoundOut();
            }

            soundOut.Stopped += (s, e) => waitHandle.Set();

            IWaveSource finalSource = equalizer.ToWaveSource(16); //since the equalizer is a samplesource, you have to convert it to a raw wavesource
            soundOut.Initialize(finalSource); //initialize the soundOut with the previously created finalSource
            soundOut.Play();

            /*
             * You can change the filter configuration of the equalizer at any time.
             */
            equalizer.SampleFilters[0].SetGain(20); //eq set the gain of the first filter to 20dB (if needed, you can set the gain value for each channel of the source individually)

            //wait until the playback finished
            //of course that is optional
            waitHandle.WaitOne();

            //remember to dispose and the soundout and the source
            soundOut.Dispose();
        }
    }
    catch(NotSupportedException ex)
    {
        Console.WriteLine("Fileformat not supported: " + ex.Message);
    }
    catch(Exception ex)
    {
        Console.WriteLine("Unexpected exception: " + ex.Message);
    }
}

您可以将均衡器配置为您想要的任何内容。由于它 100% 实时运行,所有更改都会立即应用。如果需要,还可以单独访问修改每个通道。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带均衡器的声音[关闭] 的相关文章

  • 数据模板绑定垃圾邮件输出窗口出现错误:找不到管理 FrameworkElemen

    我有问题 System Windows Data 错误 2 找不到目标元素的管理 FrameworkElement 或 FrameworkContentElement BindingExpression 无路径 数据项 空 目标元素是 So
  • 在 C# 中按元素相乘数组具有意想不到的性能

    我想找到按元素相乘两个数组的最佳方法 这是更广泛项目的一部分 其中性能而不是唯一的考虑因素 我今天开始用 C Linqpad 编写一些函数 因此它还没有以任何方式进行优化 下面代码的输出如下 Environment ProcessorCou
  • 更改 Qt OpenGL 窗口示例以使用 OpenGL 3.3

    我正在尝试更改 Qt OpenGL 示例以使用更现代的 opengl 版本 330 似乎合适 所以我做了 在 main cpp 上设置版本和配置文件 设置着色器版本 更改着色器以使用统一 它现在构建没有任何错误 但我只看到一个空白窗口 我错
  • 如何在 C# / .NET 中创建内存泄漏[重复]

    这个问题在这里已经有答案了 可能的重复 托管代码中是否可能存在内存泄漏 特别是 C 3 0 https stackoverflow com questions 6436620 is it possible to have a memory
  • EF Core 通过完全替换断开集合导航属性的更新

    使用 EF Core 5 0 我有一个 SPA 页面 可以加载Group实体及其集合Employee来自 API 的实体 var groupToUpdate await context Groups Include g gt g Emplo
  • 我如何在 C# .NET(win7 手机)中使用“DataContractJsonSerializer”读入“嵌套”Json 文件?

    我有一个问题 如果我的 json 文件看起来像这样 Numbers 45387 Words 空间桶 我可以很好地阅读它 但是如果它看起来像这样 Main Numbers 45387 Words 空间桶 某事 数字 12345 单词 克兰斯基
  • 读取 C# 中的默认应用程序设置

    我的自定义网格控件有许多应用程序设置 在用户范围内 其中大部分是颜色设置 我有一个表单 用户可以在其中自定义这些颜色 并且我想添加一个用于恢复默认颜色设置的按钮 如何读取默认设置 例如 我有一个名为的用户设置CellBackgroundCo
  • 找不到 assimp-vc140-mt.dll ASSIMP

    我已经从以下位置下载了 Assimp 项目http assimp sourceforge net main downloads html http assimp sourceforge net main downloads html Ass
  • 如何获取 QTableView 的标题列表?

    我有一个QTableView我的对话框中的对象 我需要访问该表的水平标题并将它们放入QStringList object 尽管进行了大量搜索 但我在 Qt 文档中找不到如何获取此标头列表 编辑 我发现的最接近的地方是this https w
  • 给出 5 个参数,但在终端中只得到 3 个参数

    我想将一个文件传递给一个c 程序 如果我在 IDE 中执行此操作 test string string lt test txt return argc 5 但在终端上我刚刚得到argc 3 看来 这是因为 什么是 lt 意思是 我正在使用
  • 无法在内存位置找到异常源:cudaError_enum

    我正在尝试确定 Microsoft C 异常的来源 test fft exe 中 0x770ab9bc 处的第一次机会异常 Microsoft C 异常 内存位置 0x016cf234 处的 cudaError enum 我的构建环境是 I
  • 每个租户的唯一用户名和电子邮件

    我正在使用以下代码编写多租户应用程序ASP NET Core 2 1 我想覆盖默认的与用户创建相关的验证机制 目前我无法创建多个具有相同的用户UserName My ApplicationUser模型有一个名为TenantID 我想要实现的
  • C# 中的 strstr() 等效项

    我有两个byte 我想找到第二个的第一次出现byte 在第一个byte 或其中的一个范围 我不想使用字符串来提高效率 翻译第一个byte to a string会效率低下 基本上我相信就是这样strstr 在 C 中做 最好的方法是什么 这
  • .NET Core 中的跨平台文件名处理

    如何处理文件名System IO以跨平台方式运行类以使其在 Windows 和 Linux 上运行 例如 我编写的代码在 Windows 上完美运行 但它不会在 Ubuntu Linux 上创建文件 var tempFilename Dat
  • 跨多个域的 ASP.NET 会话

    是否有合适的 NET 解决方案来在多个域上提供持久服务器会话 即 如果该网站的用户在 www site1 com 下登录 他们也将在 www site2 com 下登录 安全是我们正在开发的程序的一个问题 Thanks 它是否需要在会话中
  • 使用taskkill停止Windows服务

    我需要帮助来使用 C 终止 Windows 服务 现在要终止该服务 请使用以下选项 从命令 sc queryex ServiceName 发现后PID服务的 taskkill pid 1234 exemple f 为了便于阅读 但如果您明白
  • C++ Streambuf 方法可以抛出异常吗?

    我正在尝试找到一种方法来获取读取或写入流的字符数 即使存在错误并且读 写结束时间较短 该方法也是可靠的 我正在做这样的事情 return stream rdbuf gt sputn buffer buffer size 但如果streamb
  • C++0x中disable_if在哪里?

    Boost 两者都有enable if and disable if 但 C 0x 似乎缺少后者 为什么它被排除在外 C 0x 中是否有元编程工具允许我构建disable if按照enable if 哦 我刚刚注意到std enable i
  • 使用 QtWebEngine 将 C++ 对象暴露给 Qt 中的 Javascript

    使用 QtWebkit 可以通过以下方式将 C 对象公开给 JavascriptQWebFrame addToJavaScriptWindowObject如中所述https stackoverflow com a 20685002 5959
  • xsi:type 属性搞乱了 C# XML 反序列化

    我使用 XSD exe 根据 XML 架构 xsd 文件 自动生成 C 对象 我正在反序列化 OpenCover 输出 但其中一个部分类未正确生成 这是导致异常的行

随机推荐

  • PHP 货币格式

    我正在使用money format第一个参数是 n 包括美元符号 并且我将区域设置设置为en US但它仍然不包括它 为什么 来自PHP net评论 如果 Money format 似乎不是 工作正常 请确保您 定义有效的语言环境 例如 在
  • 如何延迟Default.png?

    如何延迟应用程序加载以更长时间地显示启动屏幕 您应该让应用程序照常启动 然后使出现的第一个视图具有与初始屏幕相同的图像 启动计时器 然后在几秒钟后将该视图替换为真实的应用程序根视图 故意推迟实际的应用程序启动是一个很大的禁忌
  • Tomcat 服务使用“本地服务”帐户安装

    在 Tomcat 8 0 53 之后 当我安装 Tomcat 9 0 30 或 8 5 50 并将其安装为服务 使用 service bat 时 它会被安装 但 登录 为 本地服务 而不是 本地系统 帐户 这可以在windows的服务下看到
  • 个人存储库与中央存储库

    我正在尝试设置版本控制软件 目前我独自工作 但我希望这种情况会改变 并且我想将代码存储在定期备份的网络驱动器上 但在笔记本电脑的硬盘驱动器上处理相同的代码 但 GIT 让我很困惑 因此 据我所知 我应该在笔记本电脑上创建一个个人存储库 然后
  • 带身份验证的 Python 请求(access_token)

    我正在尝试在 Python 中使用 API 查询 从命令行我可以使用curl像这样 curl header Authorization access token myToken https website example id 这会给出一些
  • Spring在运行时选择bean实现

    我使用带有注释的 Spring Bean 并且需要在运行时选择不同的实现 Service public class MyService public void test 例如对于windows平台我需要MyServiceWin extend
  • 如何在MySql中的DATETIME字段的日期部分创建索引

    如何在 DATETIME 字段的日期部分创建索引 mysql gt SHOW COLUMNS FROM transactionlist Field Type Null Key Default Extra TransactionNumber
  • 可串行化和瞬态

    为了使类可序列化 我们执行以下操作 class A implements Serializable transient Object a 而不是这个 serializable class A transient Object a 为什么 如
  • Xcode 卡在索引上

    我工作了 2 个月的一个项目无缘无故停止工作 因为 Xcode 卡在 索引 上 我无法再构建该项目了 如果我尝试构建 Xcode 就会冻结 我必须强制退出 这种情况仅发生在该项目中 我尝试清理所有派生数据 但没有帮助 我正在使用 Xcode
  • 如何使用 System.out.println 在控制台中打印颜色?

    如何在控制台中打印颜色 我想在处理器发送数据时以颜色显示数据 在接收数据时以不同的颜色显示数据 如果您的终端支持 您可以使用ANSI 转义码在输出中使用颜色 它通常适用于 Unix shell 提示符 但是 它不适用于 Windows 命令
  • Express.js 路由:可选 splat 参数?

    我有一条看起来像这样的路线 app all path namedParam splat function req res next if req params length do something when there is no spl
  • PHP 子字符串提取。获取第一个“/”之前的字符串或整个字符串

    我正在尝试提取一个子字符串 我需要一些帮助来用 PHP 来做这件事 以下是我正在使用的一些示例字符串以及我需要的结果 home cat1 subcat2 gt home test cat2 gt test startpage gt star
  • 单元测试:使用酶反应上下文 api 返回一个空对象

    我第一次尝试使用 React context API 将信息从主组件传递到孙组件 所以首先我创建了一个上下文 const MyContext React createContext export default MyContext 这是设置
  • 打印 F# 歧视联合

    我正在编写一个 F 程序 它将字符串解析为 AST 类型 这是一个可区分的联合 当我使用fsi 在 Mono Mac OS X 上 运行我的代码 AST 以良好的格式打印出来 但是当我使用printfn s lt ast ToString
  • 用于匹配不包含单词的行的正则表达式

    我有以下几行 Message Polarion commit Mon May 18 06 59 37 CEST 2009 Message Polarion commit Fri May 15 19 39 45 CEST 2009 Messa
  • 在 Haskell 中运行并行 URL 下载

    下面是 Haskell 代码 它 HTTP 下载给定目录中缺少的文件 module Main where import Control Monad filterM liftM import Data Maybe fromJust impor
  • Android NDK:dlopen 失败

    我有一个奇怪的错误 它说 java lang UnsatisfiedLinkError dlopen failed cannot find obj local armeabi v7a libsharedlibrary so from ver
  • 从 GitHub 页面提交 formspree.io 时出错

    我在 GitHub 页面上托管一个网站 当我尝试提交 formspree io 表单时 出现以下错误 这是我的代码
  • 以编程方式更改验证范围 (MVC3 ASP.NET)

    假设我有这个视图模型 public class MyModel Range 0 999 ErrorMessage Invalid quantity public int Quantity get set 现在 对于该模型的特定实例 有效值的
  • 带均衡器的声音[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我正在尝试使用 C 创建均衡器 经常看 NAudio 但是我找不到任何可以与 NAudio 配合使用的均衡器 考虑到我有点迷失 我来这里是想询问一种在 C 中创建或实现均衡器的方法