如何将系统麦克风音频流传输到连接设备麦克风音频流

2023-11-27

I am trying to attach USB device used for tele calling which have pnp sound controller for mic and speaker. Now i have two speaker and two mic for input output as shown in image below.<code>Speaker</code>mic. Now my motive is to transfer audio stream from system mic to usb mic and from usb speaker to system speaker.

我尝试使用虚拟电缆软件解决这个问题,但是我需要依赖第三方。使用 c# 可以实现什么可能的解决方案。

我对此一无所知,所以不知道如何开始。谷歌搜索后我发现

  1. CS Core
  2. N Audio

可以帮助我我不知道如何。

 public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        List<NAudio.Wave.WaveInCapabilities> sources = new List<NAudio.Wave.WaveInCapabilities>();

        for (int i = 0; i < NAudio.Wave.WaveIn.DeviceCount; i++)
        {
            sources.Add(NAudio.Wave.WaveIn.GetCapabilities(i));
        }

        sourceList.Items.Clear();

        foreach (var source in sources)
        {
            ListViewItem item = new ListViewItem(source.ProductName);
            item.SubItems.Add(new ListViewItem.ListViewSubItem(item, source.Channels.ToString()));
            sourceList.Items.Add(item);
        }
    }

    NAudio.Wave.WaveIn sourceStream,sourceStream1 = null;
    NAudio.Wave.DirectSoundOut waveOut = null;

    private void button2_Click(object sender, EventArgs e)
    {
        if (sourceList.SelectedItems.Count == 0) return;

        int deviceNumber = sourceList.SelectedItems[0].Index;

        sourceStream = new NAudio.Wave.WaveIn();
        sourceStream.DeviceNumber = 0;
        sourceStream.WaveFormat = new NAudio.Wave.WaveFormat(44100, NAudio.Wave.WaveIn.GetCapabilities(deviceNumber).Channels);



        NAudio.Wave.WaveInProvider waveIn = new NAudio.Wave.WaveInProvider(sourceStream1);
        sourceStream.
        waveOut = new NAudio.Wave.DirectSoundOut();
        waveOut.Init(waveIn);

        sourceStream1.StartRecording();
        waveOut.Play();
    }

    private void button3_Click(object sender, EventArgs e)
    {
        if (waveOut != null)
        {
            waveOut.Stop();
            waveOut.Dispose();
            waveOut = null;
        }
        if (sourceStream != null)
        {
            sourceStream.StopRecording();
            sourceStream.Dispose();
            sourceStream = null;
        }
    }

    private void button4_Click(object sender, EventArgs e)
    {
        button3_Click(sender, e);
        this.Close();
    }
}

使用此代码我可以将麦克风音频发送到扬声器,但我如何使用它来实现我的任务。


实际上,如果不编写任何自定义驱动程序,就无法做到这一点。您无法将音频数据渲染到输入设备。输入设备用于读取数据。输出设备(扬声器)用于写入数据。

有些程序(例如虚拟音频线)可以使用自定义驱动程序来绕过这些限制。

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

如何将系统麦克风音频流传输到连接设备麦克风音频流 的相关文章

随机推荐

  • 使用 CSS3 模糊滤镜时图像周围出现白色模糊?

    今天我想重新设计我的网站并以不同的方式处理它 我并没有专注于排版 而是添加了大图像和小文本 我简单地做了 html background url img background png no repeat center center fixe
  • iOS swift 将 mp3 转换为 aac

    我正在转换一个mp3 to m4a在 Swift 中 代码基于this 当我生成 PCM 文件时它起作用 当我将导出格式更改为 m4a 时 它会生成一个文件 但无法播放 为什么会腐败 这是到目前为止的代码 import AVFoundati
  • Node.js 在 Windows 上的表现是否很差,对于基本 I/O 肯定不会比 apache 慢

    问题 我得到的结果合理吗 有什么东西可以对减少每秒请求数产生如此大的影响吗 Edit 我的一个朋友刚刚在 Linux 上对相同的应用程序进行了基准测试 平均 r s 约为 7000 Edit 2 我检查了 Node exe 的 CPU 使用
  • Xcode 4 - 构建输出目录

    我在 Xcode4 beta 5 中设置 定位输出文件时遇到问题 它们被放置在某处 Library Developer ugly path 我什至无法在我的产品上选择 在查找器中显示 对于简单的 C 项目 Foundation 工具甚至 C
  • jQuery 文本框光标到文本末尾?

    我正在尝试使用 jQuery 在用户点击 enter 后基本上替换文本框中文本末尾的光标 我的 输入 部分正在工作 但我不知道 输入部分之后 如何 我可以让光标返回到文本框中输入的文本的末尾 即此刻 当用户按 Enter 键时 光标转到新行
  • 使用 CanCan 授权命名空间和嵌套控制器

    我在让 cancan 授权我的新路线设置时遇到了一些麻烦 namespace api do namespace v1 do resources users do resources user songs resources friendsh
  • 如何将输入值获取到 Angular 的 $scope 中?

    我是 Angular 的新手 我正在尝试做一些非常基本的事情 这是视图的一部分 所有角度文件都添加到其他地方 div div
  • 如何将 bash 命令的输出存储在变量中? [复制]

    这个问题在这里已经有答案了 我正在尝试编写一个简单的脚本来终止进程 我已经读过使用 bash 和正则表达式在一行中查找并终止进程所以请不要将我重定向到此 这是我的代码 LINE ps aux grep 1 PROCESS LINE awk
  • 用于在自连接表中的嵌套

    Please help me solve my big problem in my on line shopping project i created a dynamic Category List with Infinite Level
  • 搜索满足 Column1 <= X <= Column2 的行的 SQL 查询非常慢

    我正在使用 MySQL 数据库 并有下表 CREATE TABLE SomeTable PrimaryKeyCol BIGINT 20 NOT NULL A BIGINT 20 NOT NULL FirstX INT 11 NOT NULL
  • 所有事件驱动框架都应该是单线程的吗?

    http weblogs java net blog kgh archive 2004 10 multithreaded t html认为多线程 GUI 框架是一个失败的梦想 非 GUI 框架怎么样 这个经验法则是否适用于所有事件驱动框架
  • 应用程序启动器图标更改为 Oreo 上的默认图标

    我创建了一个带有自己的启动器图标的 Android 应用程序 它与牛轧糖配合得很好 但在 Oreo 中 我的图标被默认的 Android 图标取代 我已经定义了ic launcher png and ic launcher round pn
  • AutoMapper 与 ValueInjecter [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 Locked 这个问题及其
  • 将音频 MMS:// 流式传输到 iPhone

    我想直播mms url我的 iPhone 应用程序 但到目前为止 很难获得有关该主题的信息 我知道有几个应用程序已经可以做到这一点 FStream WunderRadio Tuner 并且我已经阅读了一些关于它们可能使用 libmms 和
  • 模板类C++

    我尝试为我的大学项目设计一个模板 我写了以下代码 ifndef LinkedList H define LinkedList H include Link h include
  • C++ 中的扩展方法

    我正在寻找 C 中扩展方法的实现 并发现了这个 comp std c 讨论其中提到polymorphic map可以用于将方法与类相关联 但是 提供的链接似乎已失效 有谁知道这个答案指的是什么 或者是否有另一种方法以与扩展方法类似的方式扩展
  • 乔恩·斯基特 (Jon Skeet) 的 Singleton 澄清

    public sealed class Singleton Singleton public static Singleton Instance get return Nested instance class Nested Explici
  • 等效的隐式运算符:为什么它们是合法的?

    Update 请参阅下面我对 C 规范的一部分的剖析 我想我一定错过了一些东西 因为me看起来我在这个问题中描述的行为实际上违反了规范 更新2 好吧 经过进一步思考 并根据一些评论 我想我现在明白发生了什么 规范中的 源类型 一词指的是正在
  • 迭代器上的 Scala 映射不会产生副作用

    为什么会这样 scala gt List 1 2 3 4 iterator map x Int gt println x 不打印出来 1 2 3 4 while List 1 2 3 4 map x Int gt println x Lis
  • 如何将系统麦克风音频流传输到连接设备麦克风音频流

    I am trying to attach USB device used for tele calling which have pnp sound controller for mic and speaker Now i have tw