问题标签 [asio]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
917 浏览

c++ - Asio 异步和并发

我正在boost::asio使用异步 TCP 连接编写一些代码。我不得不承认我对此有些怀疑。所有这些都与并发有关。这里有一些:

  • 如果我async_write在同一个套接字上启动两个或多个而不等待第一个完成会发生什么?处理程序(和async_write)会重叠还是asio提供序列化和同步?

  • async_connect与和相同的问题async_read。一般来说,从不同的线程调用这些函数是否安全(我不是在谈论使用不同的缓冲区,这是另一个问题......)。

0 投票
2 回答
1762 浏览

c# - 在 C# 中生成正弦扫描

我想在 C# 中生成一个正弦扫描,我可以在其中定义开始频率、结束频率和扫描持续时间。我查看了播放缓冲区的声音库,例如 DirectSound 和 ASIO。但是由于缓冲区大小限制,当扫描的持续时间足够长以填充多个缓冲区时,我无法弄清楚如何控制扫描的持续时间。任何样本或指南都会非常有帮助。

0 投票
1 回答
765 浏览

windows - 纯数据冻结不输出音频

我已经下载并重新安装了 Pure Data。运行媒体 -> 测试音频和 MIDI 时,有 3 种测试音设置:80、60、关闭。当我使用其中任何一个时,什么都没有出现。一切都开启并投入使用,但没有声音。在我尝试运行 ASIO 的那一刻,我完全失去了关闭 Pd 的能力。此外,我无法在 Pd 内外播放音频。如果我想再次听到任何声音,我必须重新启动计算机,尽管扬声器已取消静音。

0 投票
2 回答
508 浏览

c++ - 什么会导致 C++ .exe 和 .dll 只能在构建它的机器上工作?

我正在使用 VS2010 并且正在处理这个项目。

http://www.codeproject.com/KB/audio-video/Asio_Net.aspx

最初,我下载了演示二进制文件,它会在我的机器上崩溃。在阅读了一些评论后,它说下载源代码,构建它,(在获得 ASIO SDK 之后),它应该可以在你的机器上运行。这是正确的,在 VS 中构建它之后,它可以在该机器上运行。

当我将重建的 .exe 和 .dll 移动到另一台机器时,它会崩溃并出现与最初下载的演示二进制文件相同的错误。所以我不确定是什么原因造成的。我怎样才能使这个 C++ 二进制文件在任何机器上工作?

我是一名 C# 开发人员,大部分代码都是 C++,所以我有点不知所措。

顺便说一句,这是错误消息:

“未处理的异常:System.IO.FileNotFoundException:无法加载文件或汇编'Bluewave.Interop.Asio.dll'或其依赖项之一。找不到指定的模块。在BlueWave.Interop.Asio.Test.TestConsole .Main(String[] 参数)"

编辑:在这里找到答案:http: //msdn.microsoft.com/en-us/library/8kche8ah (v=VS.100).aspx

使用依赖walker 查找缺少的.dll。

0 投票
1 回答
3494 浏览

c# - 从 C++ ASIO 库用 C# 录制音频流

我需要找到录制音频流的最佳方式。我已经用 C++ 构建了低级代码,并将其中的一部分与 C# 接口。

所以我有一个 C++ 回调,它给了我一个浮点数组 - 音频信号。目前,我的 C++ lib 正在以 wav 格式将数据直接记录到文件中,并且它只会在记录结束时通知我的 C# 应用程序。

但是,我希望在 UI 方面有更多的交互性,比如“无限”进度条、记录的数据量、取消按钮等,因为最坏的情况是一分钟,也许最好把它保存在内存中。我对 .NET 和 C# 内存管理知之甚少,所以我不知道如何有效地进行。

C# 中是否有任何可快速调整大小的容器,我可以将数据放入其中,然后像数组一样访问它?

我也想建立一个波形图像。我已经用 C++ 完成了这些事情,但不知何故我不喜欢编写太多消息传递、传输对象等的想法。

所以把事情放在一起:

  1. 我有 C++ 非托管回调,它可以做一些事情,一旦它处理了数据,我想从内部调用 C# 方法,C 原型将是:

    无效进程(浮点**信号,int n);(通常 [2][n] - 用于立体声)

    什么是 C# 等价物,我如何从 C++ 回调中调用它?

  2. 将连续流写入(例如 mem.put(float[][] data, int size) )然后将其作为数组或其他简单方法读取(例如从中保存 wav 文件或制作波形位图)

  3. 如果我在 C# 中这样做,会不会有重大的性能损失?(托管 c++ 包装器调用 c# 函数等......可能还有一些 DSP 的东西)或者我只是偏执狂?:)

干杯,

巴布罗克斯

我的解决方案

好的,我这样解决了:

在我的 C++ 头文件中,我得到了传输结构:

然后在托管 C++ 类中我声明:

然后我可以将它用作初始化音频的方法的参数:

该委托还有一个 C 原型

在内部 C++ 类中用作:

那么第一种方法的主体是:

audioObserver 的主体只是将该回调存储在对象中并执行一些与音频相关的事情。

然后在处理方法中调用回调,如下所示:

以及 C# 委托的主体:

所以可能这不是最好的代码 - 我不知道。只能说它有效,似乎没有泄漏等:)

0 投票
2 回答
808 浏览

c - 未定义的引用

我正在尝试使用 ASIO(音频流输入/输出)。我下载了SDK,但是因为这个SDK没有库,只有头文件和源文件,我只好把它编译成一个库。此外,它被编写为使用 MSVC 的一些功能(特别是一些宏定义 - _WIN64 和 WINVER)。出于许可原因,我不能使用 MSVC。所以我将 Eclipse CDT 与 MinGW 一起使用,告诉预处理器设置这些宏(适用于 Windows 7 x64)并愉快地编译了一个库。

现在,当我想使用该库时,我不断得到未定义的引用。你能告诉我我做错了什么吗?

Hello world 文件(加载 ASIO 驱动程序并打印其信息):

gcc 的详细输出:

并从 nm 为库输出(仅相关对象):

编辑:

好的,现在我设法编译了库,因此它可以通过 C 代码访问(我添加了

外部“C”

在每个函数声明之前。现在 nm 输出如下所示:

这看起来不错。我仍然有一些名称混乱,它仍然抱怨未定义的引用。

我在这里还缺少什么?

编辑 2:我终于让事情奏效了。似乎该错误是由一些剩余的设置缓存引起的。删除项目并重新设置所有内容解决了问题。但是感谢@John Zwick 提供的关于库编译的提示,我会坚持很长时间。

0 投票
1 回答
294 浏览

linker - 对“g_Templates”的未定义引用

我正在尝试为我的应用程序使用 MinGW 编译 ASIO,但我一直遇到对'g_Templates''g_cTemplates'和. 的未定义引用'vtable for AsioDriver'。我正在与-lole32 -luuid. 我需要哪些额外的库来编译它?

Google 发现这是一个 DirectShow 过滤器,但 MinGW 应该能够针对 DirectShow 进行编译。

0 投票
1 回答
16923 浏览

c++ - VS2010 中的“重新定义;不同的类型修饰符”

我正在尝试编译我在 Visual Studio 中下载的一些代码。该代码适用于 msvc 6,我将其导入 VS2010。该代码用于通过编译 DLL 为 labview 提供 ASIO 支持。看到这里的整个代码。

构建时出现以下错误:“错误 C2373:'_pctype':重新定义;不同的类型修饰符。”

代码片段如下:

unsigned short _Ints[ 512 ];
unsigned short *_pctype = _Ints;

如果有人会从我提供的链接中引用代码包,这来自文件 GenMonCIN.c

0 投票
2 回答
1216 浏览

c++ - PortAudio 显示 Asio 和 WDM-KS 的设备计数为零

对于 ASIO 和 Windows WDM-KS 主机 API,PortAudio 显示的 deviceCount 为 0,defaultOutputDevice 为 -1。我确实成功地构建了 PortAudio,以包括对 ASIO 和 Windows WDM-KS 的支持,并且在迭代可用主机时,这两个选项都会出现。我还验证了我确实安装了 ASIO4All。我究竟做错了什么?我在 Mac 上的虚拟机 (vmware) 中运行 Windows。这会引起问题吗?

0 投票
1 回答
307 浏览

audio - ASIO 数据格式

我打算建立一个简单的音频接口。为此,我只想知道 ASIO 驱动程序通常以哪种格式将数据传递给程序?我无法从规格中找出这一点,也无法在其他地方找到它。我不想编写自己的驱动程序,我只想以相同的格式传递我的数据。