问题标签 [novocaine]

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 投票
1 回答
867 浏览

ios - iOS 应用程序要求访问麦克风,即使是 kAudioSessionCategory_MediaPlayback

我正在使用来自:https ://github.com/alexbw/novocaine 的 Novocaine 库来播放 wav 文件。我知道 iOS 有自己的媒体播放器 API,但它的限制在于预设均衡器。我需要使用 Novocaine,因为我正在使用 NVDSP https://github.com/bartolsthoorn/NVDSP来实现 10 波段图形均衡器。

Apple 拒绝了我提交的应用程序,因为它要求访问麦克风,但它只是一个播放应用程序。他们说:

“麦克风同意请求是通过使用 AVAudioSessionCategoryRecord 或 AVAudioSessionCategoryPlayAndRecord 音频类别生成的”

在 Novocaine.m 中,我修改了 setupAudio 从

对这些中的每一个:

但在上述每种情况下,应用程序仍请求麦克风访问权限。

我搜索了所有代码,这是唯一设置音频会话类别的地方。

要进行测试,每次修改后,您必须在 iPod 上执行以下操作:

设置 -> 常规 -> 重置 -> 重置位置和隐私

否则测试无效。

我使用 XCode 调试器单步执行了几乎所有的 Novocaine 代码,但诊断起来非常困难,因为麦克风访问弹出窗口仅在显示视图时显示,但是,对它的检查发生在代码中的更早时间。

代码中是否还有其他地方要求访问麦克风或影响麦克风访问作为副作用?

我将 XCode 5.0.2 (5A3005) 与 iOS SDK 7.0 一起使用,我唯一的测试设备是第 5 代 iPod Touch。

0 投票
1 回答
96 浏览

pcm - 将 pcm s16be 阵列注入 novocaine audiomanager

致@alexbw 和朋友们,首先感谢这段伟大的代码。我在一个字节数组中有 pcm 数据(有符号的 16 位大端序),我想用 Novocaine AudioManager setOutputBlock 播放它。我知道我首先需要转换为浮点数组。还是有更快的方法?干杯菲利普

0 投票
1 回答
290 浏览

ios - 使用 NOVOCAINE 的 10 段均衡器

我正在尝试使用NOVOCAINE构建一个 10 波段均衡器。我复制了 Equaliser.mm 的代码viewWillAppear,并在 xib 文件中添加了另外 9 个滑块,并更改了IBAction代码:

我想知道的是我这样做是否正确?滑块的范围是多少?就像在HPF示例中一样,滑块范围是 2k 到 8k。这里需要一些指导。

谢谢。

0 投票
1 回答
249 浏览

ios - 使用 Novocaine 主动降噪

出于主动降噪的目的,我如何使用 Novocaine 生成反相信号?也就是说,在 a 内NovocaineOutputBlock,如何生成与输入相位相差 180 度的输出?

到目前为止,这是我的代码:

0 投票
1 回答
226 浏览

ios - 频率分析 - Novocaine 和麦克风播放:如何禁用扬声器输出?

我正在使用 Novocaine 进行频率检测 - 它工作正常。我非常欣赏 Novocaine 框架,因为它性能卓越且易于使用。

无论如何,只有一个问题:从 iPhone/iPad 麦克风捕获声音,我想禁用扬声器输出以防止声反馈(噪音)。我怎样才能做到这一点?到目前为止,我一直在徒劳地尝试更改音频输出路线。任何想法都受到高度赞赏!

当然,我发现独立于 Novocaine 框架,我可以禁用硬件声音 - 但是当我这样做时,用户会得到一种可能会让用户烦恼的工具提示(“声音禁用”)。我更喜欢在用户点击“捕获声音”按钮时暂时禁用声音而不注意它。

0 投票
2 回答
3821 浏览

ios - 低延迟输入/输出音频队列

我有两个 iOS AudioQueues - 一个输入直接将样本馈送到一个输出。不幸的是,有一个非常明显的回声效果:(

是否可以使用 AudioQueues 进行低延迟音频,还是我真的需要使用 AudioUnits?(我尝试过使用 AudioUnits 的 Novocaine 框架,这里的延迟要小得多。我还注意到这个框架似乎使用更少的 CPU 资源。不幸的是,如果没有对其进行重大更改,我无法在我的 Swift 项目中使用这个框架.)

这是我的代码的一些摘录,主要是在 Swift 中完成的,除了那些需要在 C 中实现的回调。

然后我的 C 代码将回调设置回 Swift:

0 投票
1 回答
1876 浏览

ios - IOS、AVAudioSession和Novocaine:如何动态设置采样率?

对于音高检测,我使用 Novocaine 框架来处理麦克风捕获的数据。

最初 - 我覆盖了原来的 Novocaine 类,以便设置我自己的(降低的)采样率:

我将采样率降低到 44100.0 / 4.0,以便同时捕获低频(20 Hz 和 100 Hz 之间的某个值)。这很好用!

当我尝试获得更高的频率(从 500 Hz 开始)时,由于采样率低,我会出现偏差。因此,我需要将采样率提高到 44100.0 以达到更高的精度。

我的问题:由于 Novocaine 是单例,有没有办法在输出块内动态更改采样率?

由于 Novocaine 依赖于 AVAudioSession,因此我徒劳地尝试执行以下操作:

但这对 Novocaine 框架的采样率没有影响。

是否有可能在不创建新音频会话的情况下更改采样率?问题是,输出块属于当前正在运行的会话。

0 投票
1 回答
199 浏览

c++ - 插入耳机时出现音频缓冲区错误

我正在使用 Novocaine 在应用程序中播放音频,并且在执行以下步骤后我一直在崩溃:

  1. 在没有插入耳机的情况下在 iPhone 上打开应用程序
  2. 在应用程序中开始音频播放
  3. 插入耳机

该应用程序在outData[i*stride] = mData[whichChannel][idx];以下函数中崩溃:

在头文件中,mData声明为float **mData;,编辑器中的错误消息为“AURemoteIO::IOThread(14): EXC_BAD_ACCESS (code=1, address=0x0)”。

如果我po mData[whichChannel][idx]在控制台中输入,我会收到消息“错误:无法应用表达式副作用:无法解除结果变量:无法读取其内存。”

这里发生了什么,我该如何避免它?作为一名 Objective-C/Swift 开发人员,这对我来说是陌生的水域,所以任何帮助都将不胜感激。谢谢阅读!

编辑:崩溃时的附加调试信息:

0 投票
1 回答
623 浏览

ios - 使用扩展音频文件写入和读取音频文件

我在使用设备录制时使用 ExtAudioFileWriteAsync 写入音频文件,但是一旦我完成录制,我尝试使用 ExtAudioFileRead 函数读取它,我得到的样本与我正在编写的样本不同......有人知道为什么会发生这种情况吗?

对于写作:

阅读:

顺便说一句,我正在使用Novocaine项目来获取设备音频。我可以使用 Novocaine 代码或任何其他播放器重现保存的音频。

编写 ExtAudioFileRef 输出时:

outputFileDesc 在哪里

AudioStreamBasicDescription outputFileDesc = {44100.0, kAudioFormatMPEG4AAC, 0, 0, 1024, 0, thisNumChannels, 0, 0}; outputFileDesc.mFormatFlags = kAudioFormatFlagIsBigEndian | kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked;

读取 ExtAudioFileRef 输入文件时:

在这两种情况下(写作和阅读),它都采用相同的格式:

顺便说一句,即使读取样本不等于写入样本,两个信号的平均值也非常相似。但我不完全明白为什么不完全相等!

知道我做错了什么吗?

0 投票
0 回答
395 浏览

ios - iOS - iOS 的简单重采样音频功能

我正在使用 Novocaine 录制音频,用于音频处理 iOS 应用程序。我有一个自定义音频过滤器,我在录制后应用它。现在我希望以 8kHz 重新采样音频。所以基本上我需要一个简单的模块/函数,我在其中传递音频数据缓冲区,并简单地获得重采样音频。

我在互联网上查看过,但没有找到符合我对 iOS 要求的通用重采样音频数据解决方案。

请帮助我,我将非常感谢你。