问题标签 [naudio]
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.
c# - WaveMixerStream32 和 IWaveProvider
NAudio 有什么方法可以将 WaveMixerStream32 与 WaveProviders 链接,而不是 WaveStreams?我正在使用 BufferedWaveProvider 流式传输多个网络流。似乎没有一种简单的方法可以将其转换为 WaveStream。
干杯!
卢克
c# - 使用 NAudio 更改 wav 文件(到 16KHz 和 8bit)
我想使用 NAudio 将 WAV 文件更改为 8KHz 和 8bit。
但是当我播放输出文件时,声音只有嘶嘶声。我的代码是正确的还是有什么问题?
如果我将 WaveFormat 设置为 WaveFormat(44100, 16, 1),它可以正常工作。
谢谢。
c# - NoDriver 调用 acmFormatSuggest
请看我下面的代码,
我用过MP3播放器。当任何机器未安装 ACM 编解码器时,都会出现以下错误。
“NoDriver 调用 acmFormatSuggest”。
请建议如何在我的机器上安装 ACM 编解码器。
windows - 从麦克风无损读取
我正在使用 NAudio(但它适用于直接阅读)来捕获麦克风波数据。似乎如果我的应用程序很忙,它会丢弃/跳过麦克风中的一些输入数据。
我已将阅读线程设置为最高优先级,但我同时在其他几个线程中进行大量计算。
有没有办法无损读取数据?
(或者它是无损的,而我在其他地方的错误?)
c# - 简单的 NAudio 播放
如何让 NAudio 播放嵌入式资源“WaterforMGC.delfino.wav?” 不过,我不想要一个完整的 .cs 文件,只是我可以从中学习的一些简单的东西。
.net - 用于多线程的 NAudio:缓冲区已在播放错误时排队
我的应用程序正在运行音频播放,我们正在多线程上播放音频。有时错误是给出错误:
缓冲区已在 Play 中排队(断言失败:Abort=Quit,Retry=Debug,Ignore=Continue)
c# - 播放流式音频数据 (C#)
我试图使用 C# 开发一个可以播放流式音频数据的 Windows 应用程序。基本上,我将有一个负责播放不同音频文件的客户端应用程序。目前,从客户端应用程序中,我从文件头中提取硬件配置参数,然后通过网络传输文件数据(PCM 流)。
那么是否可以使用从客户端发送的硬件配置参数来配置实际的硬件(在服务器端),然后将文件数据流提供给它,以便它可以播放音频数据。
在搜索的过程中,我了解了NAudio
. NAudio 是否能够做这些事情,或者对我来说更好的选择是使用 Directsound APIS 切换到 nativ C/C++ 代码。
更新:
通过配置硬件,我的意思是设置与音频播放相关的参数。这些参数将包括sample rate
(例如:44100 Hz)、number of channels
(例如:立体声)、storage format
(例如:16 位小端)等。
我的客户端应用程序在 Linux 上,我已经植入了一个 ALSA 驱动程序,它拦截 PCM 流和 hw_params 配置,然后将它们发送到服务器。
更新结束
谢谢。
audio - 带有 NAudio 的音频中继器
我正在实现一个程序,它从输入设备读取音频流并使用 NAudio 将其发送到输出设备。为此,我使用WaveIn
及其DataAvailable
事件从输入流中获取数据。要写数据,我即将使用WaveOut
,这也意味着我需要使用IWaveProvider
. 使用队列来满足我的需要似乎非常简单。除了一件事:当队列为空并Read()
调用方法时应该发生什么?我在文档中没有找到任何关于此的内容。我认为我有的选项:
- 该方法应该阻塞,直到一些数据可用。
- 该方法立即返回 0,表示当前没有可用数据。
- 用零填充缓冲区。
我正在考虑使用选项 1 或 2,但后来我发现BufferedWaveProvider
(并且WaveInProvider
,BufferedWaveProvider
内部使用)使用选项 3。据此,我推断选项 3 是首选选项。
问题是,我是否推断出正确的,我应该使用选项 3 吗?如果我使用选项 1 或 2 会发生什么?那还能用吗?
c# - 使用 NAudio 在运行时更改波形格式
我已经使用以下方法初始化了设备:
我正在使用以下方法向其中添加 pcm 流:
waveProvider.AddSamples(samples, 0, size);
只要流数据具有相同的配置,上述工作就可以正常工作。
我有另一个接收采样率和通道数的函数,我想重新配置 waveprovider 以使用新提供的配置。这是我正在使用的代码:
这是行不通的,我相信这也不是正确的做法。知道如何重新配置设备以使用新的 sample_rate 和 num_channels
谢谢。
c# - nadio waveProvider.AddSamples 导致崩溃
在上面的代码中,buff
是从一个用C
. 对于日志记录,我打印了添加到样本的字节数。根据这个日志,在播放大约 2.4 Mb 样本后,我收到了下面提到的错误。
未处理的异常:System.InvalidOperationException:NAudio.Wave.BufferedWaveProvider.AddSamples(字节 [] 缓冲区,Int32 偏移量,Int32 计数)处的缓冲区已满
在添加新样本之前,我是否需要释放一些缓冲区或确保刷新旧条目?我查看了源代码,但没有找到与缓冲区大小相关的任何内容。我是不是错过了什么。
谢谢你的帮助。