问题标签 [audiounit]
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.
ios - 使用音频单元录制我的 iPhone 应用程序播放的声音
我今天有很多关于iOS 和音频单元的有趣的东西,并且发现了很多有用的资源(包括在内)。
首先,我对某些事情感到困惑:真的有必要用混音器单元创建一个音频图来记录应用程序播放的声音吗?
或者使用ObjectAL播放声音(或更简单的 AVAudioPlayer 调用)并创建一个远程 io 单元并使用录音回调在正确的总线上寻址就足够了?
其次,一个更程序化的问题!由于我对Audio Units的概念还不是很满意,所以我尝试调整Apple Mixer Host 项目,使其能够录制结果混音。显然,我尝试使用Michael Tyson RemoteIO 帖子来做到这一点。
我在回调函数上得到一个 EXC_BAD_ACCESS :
在使用回调函数之前我在MixerHostAudio.h
并在界面中创建:
然后在实现文件MixerHostAudio.h 中:
但我不知道出了什么问题,也不知道如何挖掘。注意:存在EffectState结构是因为我还尝试集成BioAudio 项目从缓冲区写入文件的能力。
第三,我想知道是否有更容易的方法来录制我的 iPhone 应用程序播放的声音(即不包括麦克风)?
iphone - 用 kAudioFormatiLBC 初始化 audiounit
我正在尝试初始化一个 AudioUnit 以使用 ilbc 录制音频。不幸的是,我需要使用 ilbc 作为编解码器,我不能选择其他的。
在阅读了文档和论坛后,我发现使用 ilbc 的正确流描述符应该是这样的:
然后我使用:
填充结构中的空白字段,但我总是收到有关格式的错误。
有人对streamDesc的正确参数有一些想法吗?
谢谢
iphone - 如何录制混音器单元输出产生的声音(iOS Core Audio & Audio Graph)
我正在尝试录制混音器单元输出产生的声音。
目前,我的代码基于苹果 MixerHost iOS 应用演示:混音器节点连接到音频图形上的远程 IO 节点。
我尝试在混音器输出上的远程 IO 节点输入上设置输入回调。
我做错了什么,但我找不到错误。
这是下面的代码。这是在多通道混音器单元设置之后完成的:
然后创建一个流格式:
然后影响格式并指定采样率:
然后,我尝试设置渲染回调。
解决方案 1 >>> 我的录音回调从未被调用
解决方案 2 >>> 我的应用程序在此启动时崩溃
如果有人有想法...
编辑解决方案 3(感谢 arlo anwser)>> 现在存在格式问题
和文件设置:
和录音回调:
输出文件output.caf中缺少某些内容:)。我完全迷失了要申请的格式。
objective-c - 从 iOS 上的 Audio Unit Render Proc 触发 UI 代码
我有一个多通道混合器音频单元在 iOS 应用程序中播放音频文件,我需要弄清楚如何更新应用程序的 UI 并在渲染回调到达最长音频文件的末尾时执行重置(设置为在总线 0 上运行)。正如我下面的代码所示,我正在尝试使用 KVO 来实现这一点(使用布尔变量tapesUnderway
- AutoreleasePool 是必要的,因为此 Objective-C 代码在其正常域之外运行,请参阅http://www.cocoabuilder.com/archive /cocoa/57412-nscfnumber-no-pool-in-place-just-leaking.html )。
在更改此变量的那一刻,它会触发 self 中的一个方法,但这会导致从此渲染回调执行时出现不可接受的延迟(20-30 秒)(我在想,因为它是以高优先级运行的 Objective-C 代码音频线程?)。我如何有效地触发这样的变化而不延迟?(触发器会将暂停按钮变为播放按钮,并调用重置方法为下一次播放做准备。)
谢谢
iphone - 将 AUConverter 添加到 AUGraph 时出现错误 -10877
我正在使用 Apple 的 MixerHost 示例项目,该项目设置了一个音频单元处理图,该图由连接到远程 I/O 音频单元的多通道混音器音频单元组成。我正在尝试在两者之间放置一个格式转换器音频单元,以便我可以转换混音器输出的格式。
复制两个现有音频单元的设置似乎很简单,当我输出图形设置时,它看起来是正确的:
但是,当我初始化图表时,我收到错误 -10877,无效元素,并且图表没有启动。任何人都可以看到有什么问题吗?这是完整的设置代码:
ios - iOS/Cocos2d 中的哪个音频 API 最适合复杂的混音?
我正在使用 cocos2d 开发一个电影 iPad 应用程序,我想要比大多数高级音频 API 提供的更多控制。在 cocos2d 和 iOS SDK 中,我可以访问 CocosDension(实际上是三个功能略有不同的 API)和 CoreAudio(还包含多个不同级别和功能的 API)。我正在尝试找出哪些 API 将支持我需要的功能,我可以使用一些帮助。
- 我的应用需要 4 个音轨,每个音轨都有一个可由用户控制的单独播放音量:
- 背景音乐
- 环境声
- 旁白
- 声音特效
音乐和环境音轨需要从磁盘播放 1-4 分钟长的立体声循环。我需要能够预加载、开始/停止、循环、淡入/淡出以及调整这些曲目的播放音量。暂停对于这两个曲目并不重要,因为它们会在菜单启动时继续在后台播放。
旁白轨道需要一次播放一个单声道文件,长度为 30-60 秒,平移中心。效果音轨需要同时播放多个 1-5 秒的单声道文件混合成一个立体声声场。每个正在播放的剪辑都应该能够被预加载、开始/停止,并且可以调整其音高、增益和声像。这两个曲目的播放应该可以暂停/恢复。
如果我使用 CocosDension:: SimpleAudioEngine,我相信我可以做到我想要的一半。也就是说,如果我只有音乐和效果音轨,我可以单独调整它们的音量,并使用适当的方法播放背景音乐和效果,并提供我想要的所有选项。如果我只有 Ambient 和 Narration 音轨,情况也是如此,这让我想知道是否可以绕过 SimpleAudioEngine 的单例架构,这样我就可以有两个实例,即两对 BG/FX 音轨。
如果可以同时播放两个背景音轨,我可以牺牲单独调整音乐/环境音量并将旁白轨道合并到效果中的能力(在声音剪辑级别控制其音量)。我真的很想通过单独的音量旋钮让用户可以调节音乐和环境声音。有没有办法在 CocosDension 中实现这一点?
如果我使用 CoreAudio,Multichannel Mixer AudioUnit 似乎是完成我的音量控制目标的完美之选。然而,使用它似乎需要我设置大量的低级缓冲区和音频信号路径代码。除非我错了,否则为了支持我在 CocosDension 中免费获得的所有东西(32 个同时播放声像、音高和增益控制 + 背景音乐的效果),我需要构建一个音频处理图,例如:
从实现的角度来看,这似乎相当复杂。有没有更简单的方法,可能将 CocosDenshion 和 CoreAudio API 混合在一起?他们在同一个游泳池里玩得好吗?
iphone - 我可以在 AURenderCallback 函数中限制 iOS 传递的 inNumberFrames 吗?
我创建了自定义音频播放器类,它使用AudioUnit
和ExtAudioFile
. 在我的课堂上,我准备了自己的渲染回调函数,例如
当我的应用程序在前台时,inNumberFrames
操作系统传递的参数总是512
or 1024
,我的播放器运行良好。
但是当iOS设备睡觉时,inNumberFrames
变成了4096
,我的播放器无法工作,因为它一次无法准备这么多帧。
帧准备过程很难改进,因为它大量使用extAudioFileRead
函数,很难加速。
所以,我想限制inNumberFrames
变得大于1024
.
我能做到吗?
objective-c - 如何在应用程序中使用音频单元
我一直在网上寻找教如何在应用程序中使用音频单元的东西,但没有运气。我正在尝试制作一个应用程序,允许用户即时将 AUTimePitch 应用于音频文件的播放。但是我在网上找不到任何东西来教一个初学者如何使用音频单元。
另外,我正在为 Mac 制作这个,而不是 iOS