问题标签 [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.
iphone - 调整 AudioUnit Buffer 的长度
我的问题涉及 AudioUnits。为了设计一个用于 iPhone 的变声应用程序(使用 Objective-C xCode),我使用了这个网站上的 RemoteIO audioUnit 示例:
http://atastypixel.com/blog/using-remoteio-audio-unit/
audioUnit 缓冲区设置为 256 个样本的长度。对于我的项目,我需要更多(大约 22050)。引用的页面说audioUnit缓冲区的长度可以这样调整:
现在我的具体问题:上面的代码不适合提到的audioUnit,因为没有使用AudioSession,从未初始化,因此会产生错误。除了“kAudioSessionProperty_PreferredHardwareIOBufferDuration”之外,还有其他调整缓冲区持续时间的可能性吗?在这种情况下,文档不是很有用......在此先感谢 Lukas。
iphone - 调用 [UIImageView setImage:] 时,应用程序在激活后崩溃
我有一个带有回调的应用程序,用于录制和播放音频。从录制回调中,我调用了一个函数来更新 GUI:
它工作正常,但是在我将应用程序发送到后台(使用设备的home
按钮)并再次打开它后,应用程序在第二次调用后updateGuiAfterOnset
崩溃,具体来说,它在调用后崩溃:
我在applicationWillResignActive
and中做的唯一事情applicationDidBecomeActive
是停止和启动 audioUnit:
和
我的直觉是在进入后台/前台过程中某些变量被搞砸了,但这只是一个猜测。
有任何想法吗?在多线程应用程序中进入后台时,我需要做任何推荐的事情吗?
编辑如果从主线程调用 gui-updating-method(通过点击按钮),该应用程序也会崩溃。
崩溃报告中的相关部分:
iphone - 在 Struct 中使用指向 AudioUnitSampleType 的指针时发生内存泄漏 - calloc
我正在为 iphone 编写一个音频应用程序,我需要使用一些 C 代码来处理音频文件。简而言之,在加载了这么多文件后,我的内存泄漏导致应用程序崩溃。问题与我创建的一个结构有关,该结构在读入时保存音频文件。结构的创建如下;
类型定义结构{
然后像这样在标头中初始化结构;
然后我尝试加入两个已读入的文件, phraseSynthStructArray[phrase1Index]
并将phraseSynthStructArray[phrase2Index]
合并的文件放入phraseSynthStructArray[synthPhraseIndex]
这样的文件中;
这一切正常,生成的文件已加入并可以使用。我遇到的问题是当我在这里分配内存时,phraseSynthStructArray[synthPhraseIndex].audioDataLeft = (AudioUnitSampleType *) calloc(totalFramesInFile, sizeof (AudioUnitSampleType));
然后下次调用该方法时,每次都会泄漏此内存并最终导致应用程序崩溃。我需要在这里分配内存的原因是因为必须调整内存的大小以容纳长度根据输入文件的大小而变化的连接文件。
在调用该方法之后,我无法在操作后释放内存,因为它在其他地方需要,并且我之前尝试过释放它(在上面的 joinPhrases 方法中),但这似乎不起作用。我还尝试使用 realloc 通过将指针传递给先前分配的内存来释放/重新分配内存,但这会导致崩溃,说明 EXEC_BAD_ACCESS。
我不是一个经验丰富的 C 程序员,并且无法弄清楚我在这里做错了什么导致泄漏。我会很感激一些建议来帮助我找到这个问题,因为我几天来一直在努力解决这个问题,没有任何乐趣。我已经读过在结构中有指针是个坏主意,这可能是我问题的根源吗?
在此先感谢,K。
iphone - iPhone 的实时音频循环切换
我正在尝试找到播放无缝音频循环的最佳方式,用户可以在最短的时间内切换到另一个,并且可以使用相当数量(30-150)的非常短的循环。OpenAL 是否足以满足此要求,还是我需要深入研究音频单元?Apple 文档说,对于像乐器这样的实时反馈,Audio Units 是正确的选择。
我只是想获得社区对此的意见,任何链接和示例项目将不胜感激。
iphone - 加载和选择音频文件到音频单元
我正在尝试构建一个渲染回调函数,它将加载各种短声音文件,并且(根据我的自定义逻辑)将它们放入我的混音器单元的 iOData audioBufferList 中。如何将 aif 或 caf 文件加载到程序中,并将其样本适当地导入 ioData?
objective-c - AVCaptureSession 中的自定义音频流
我目前正在尝试使用新的 iOS 4 AVFoundation 库录制视频/音频流。为麦克风和摄像头使用预设的 AVCaptureDeviceInput 设备时一切正常,但是我希望使用我自己的音频流而不是直接来自麦克风的音频流。
基本上我的应用程序使用音频单元远程 IO 对来自麦克风的输入进行一些处理,我希望将这个后处理缓冲区包含在我的 AVCaptureSession 中,而不是直接形成麦克风。
任何人都知道如何实现这一目标,或者这是否可能?
谢谢
iphone - 显示新视图时 AU 噼啪作响
在 iPhone 上,我使用 AudioUnit 作为音调发生器。工作正常。
但是,当我翻转视图(将背面向前转动以显示信息屏幕)时,在转换期间生成的音调在模拟器和设备上都会噼啪作响。仅当第一次显示翻转视图时才会发生这种情况。随后的翻转不会噼啪作响。
反面视图包含UIWebView
显示本地 HTML 文件。(我没有想出另一种显示富文本的方法。)也许我应该尝试预渲染视图。我怎样才能做到这一点?
还是应该将音频生成放在不同的线程中?我想,AU 是异步调用的——根据需要——无论如何。
objective-c - iOS 上的自定义 EQ AudioUnit
iOS 上的唯一效果 AudioUnit 是“iTunes EQ”,它只允许您使用 EQ 预设。我想在我的音频图中使用自定义的 eq
我在这个主题上遇到了这个问题,并看到了一个建议在渲染回调中使用这个 DSP 代码的答案。这看起来很有希望,人们似乎在各种平台上有效地使用它。但是,即使使用平坦的 eq,我的实现也会产生大量噪音。
这是我与 Apple 的“MixerHost”示例应用程序的“MixerHostAudio”类的 20 行集成(一次提交):
https://github.com/tassock/mixerhost/commit/4b8b87028bfffe352ed67609f747858059a3e89b
关于如何让这个工作的任何想法?还有其他整合情商的策略吗?
编辑:这是我遇到的失真示例(使用 eq flat): http ://www.youtube.com/watch?v=W_6JaNUvUjA
iphone - iOS - AudioUnitRender 在设备上返回错误 -10876,但在模拟器中运行良好
我遇到了一个问题,导致我无法从设备 (iPhone4) 上的麦克风捕获输入信号。但是,代码在模拟器中运行良好。该代码最初是从 MixerHost 示例代码中的 Apple 的 MixerHostAudio 类中采用的。在我开始添加用于捕获麦克风输入的代码之前,它在设备和模拟器中运行良好。想知道是否有人可以帮助我。提前致谢!
这是我的 inputRenderCallback 函数,它将信号馈送到混音器输入:
这是我的相关初始化代码: 现在我在混音器中只保留 1 个输入,所以混音器看起来是多余的,但在添加输入捕获代码之前工作正常。
cocoa - 使用 AudioUnit 的数据包和帧大小使用什么值
我正在熟悉如何使用 AudioUnit 播放声音,并且对数据包和帧的概念感到困惑。我想知道:
AudioUnit上下文中包和帧的定义是什么
每个数据包使用多个样本和每帧多个数据包的交易是什么
我问的原因:在我目前看到的所有代码示例中,数据包本质上是一个示例,对于 16 位立体声流,通常 mBytesPerPacket=4。而 mFramesPerPacket 通常为 1,制作一个帧、一个数据包和一个样本(都是立体样本),概念相同。
我期望一个数据包和/或一个帧是样本缓冲区,即一组 256 或 512 个连续样本,驱动程序可以指向并线性读取。将帧/数据包大小减少到一个样本似乎会给负责播放数据的任何驱动程序带来不必要的压力。我错过了什么?