问题标签 [avaudioengine]
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.
swift - 在 Swift 中使用 AudioEngine 重复声音时崩溃
我正在尝试播放具有不同效果的声音。在之前的 viewController 中我录制了一个声音,然后在下一个屏幕中,可以播放效果。第一次它工作正常,但第二次它崩溃并出现如下错误:
2015-08-07 13:00:45.900 Pitch Perfect[9643:1121173] 13:00:45.900 错误:AVAudioEngine.mm:253:AttachNode:所需条件为假:!nodeimpl->HasEngineImpl() 2015-08-07 13 :00:45.953 Pitch Perfect [9643:1121173]由于未捕获的异常'com.apple.coreaudio.avfaudio'而终止应用程序,原因:'必需条件为假:!nodeimpl->HasEngineImpl()'
有人知道为什么会崩溃吗?我研究了 AVAudioEngine、AVAudioPlayer 和 AVAudioPlayerNode 类,但没有任何结果。
谢谢
objective-c - AVAudioUnitSampler 不释放资源
我创建了一个AVAudioUnitSampler
,但是在通过该Instruments
工具检查内存之后,似乎当场景发生变化时,即使AVAudioUnitSampler
对象为零,它最初加载的资源仍然在内存中。当我重新创建采样器时,它会重新加载资源,现在我有双倍的用于采样器的内存量。如何强制资源解除分配?
这是代码:
ios - 添加效果后导出音频文件
我有一个音频文件,我想使用一些效果(如音高效果)进行处理,然后将最终结果写入文件。
在我处理文件并将其保存到光盘之前,我让用户播放音高效果并实时收听变化。
这就是我做实时工作的方式:
然后使用 aUISlider
我让用户在循环收听音频时更改音高的值。
因此,当用户完成音高播放并点击下一步按钮时,我需要使用所选音高值保存音频文件。
我的问题是,如何创建具有音高效果的新音频文件?
我不想在用户收听音频并播放音高效果时录制,我只想导出最终结果(当然不播放文件)
ios - 为 AVAudioEngine 添加输入回调
我正在尝试向AVAudioEngine's
inputNode 添加一个输入回调,但它从未被调用过。
希望我可以AVAudioEngine
用来管理 iOS 和 OS X 的基本 AUGraph,并且我可以在两者之间运行我自己的代码。我也尝试在输入节点上安装一个水龙头,但我无法更改缓冲区长度。
我制作了一个单视图 iOS 应用程序并将此代码放入viewDidLoad
:
渲染回调定义如下:
我设法以同样的方式在输出节点的音频单元上安装了一个渲染回调,但我的输入回调从未被调用。
我检查了输入节点的音频单元与输出节点的音频单元是否相同,这表明图形已正确设置。我也试过kAudioOutputUnitProperty_EnableIO
在RemoteIO
单元上设置(inputNode.audioUnit)
有人有什么建议吗?
ios - AVAudioEngine 停止设备的背景音频
我正在使用一个AVAudioEngine
对象,它AVAudioPlayerNodes
附有很多东西。音频一切正常,除了它会停止 iPhone 在后台播放的任何音频(即来自 iTunes 或其他音乐应用程序)。
当我的应用程序打开时,它会停止任何其他背景音频。有没有办法让背景音频继续播放?即使我的应用程序使用 AVAudioPlayerNodes 来播放音频本身?
swift - 使用 Swift 使用 AVAudioEngine 实时进行音高转换
我正在使用 Swift 在 OSX 上开发音频效果应用程序,我对集成音高变换效果很感兴趣。
我想实时将音调向上或向下改变一个八度。目前我只收到一个干燥的信号。
我不确定这是否可能,并且想知道这是否可能或任何人可能有的帮助或建议。
当前与问题相关的代码如下:
ios - AvAudioEngine 敲击输入节点在 iPhone 4s 上不起作用
我正在使用 AvAudioEngine 在 ios 设备上录制音频。我正在使用以下代码开始点击输入节点
此代码适用于除 iPhone 4s 以外的所有设备。
在 iPhone 4s 上,该块未被调用..
另一个有趣的事情是 installtap 行被调用了两次:
- 一次在主线程上
- 在 messengerQueue 上 - 此时 MicrophoneNode 为 Nil
尽管它的beling调用的代码中只有一个地方。
这不会发生在任何其他类型的设备上。
如果有人对此行为有任何见解,我将不胜感激!
谢谢!
swift - 录音后我听不到音乐 (Swift)
我制作了一个卡拉 OK 应用程序。如果耳机没有插件应用程序工作正常。(我的声音和背景音乐一起录制)。它是成功的。但我用耳机也是这样然后我听录音。我听不到背景音乐。(太低了)。
ios - 如何从音频文件中删除静音
我使用 AVAudioEngine 录制了一个音频文件:
现在我想获取该文件的样本并删除文件开头和结尾的静音部分。我正在使用缓冲区来读取文件:
然后我试图访问音频文件样本的浮点值:
如果我 NSLog sampleLevel 总是返回 0.0。我究竟做错了什么?我是以正确的方式获取音频文件的样本还是我完全错了?
ios - 使用 AVAudioEngine 为低延迟节拍器安排声音
我正在创建一个节拍器作为更大应用程序的一部分,并且我有一些非常短的 wav 文件可用作单独的声音。我想使用 AVAudioEngine 因为 NSTimer 存在严重的延迟问题,而且 Core Audio 在 Swift 中实现似乎相当令人生畏。我正在尝试以下操作,但我目前无法实现前 3 个步骤,我想知道是否有更好的方法。
代码大纲:
- 根据节拍器的当前设置创建一个文件 URL 数组(每小节的节拍数和每节拍的细分;文件 A 代表节拍,文件 B 代表细分)
- 根据文件的速度和长度,以编程方式创建具有适当数量的静音帧的 wav 文件,并将其插入到每个声音之间的数组中
- 将这些文件读入单个 AudioBuffer 或 AudioBufferList
audioPlayer.scheduleBuffer(buffer, atTime:nil, options:.Loops, completionHandler:nil)
到目前为止,我已经能够播放单个声音文件的循环缓冲区(步骤 4),但我无法从文件数组构造缓冲区或以编程方式创建静音,也没有在 StackOverflow 上找到任何答案解决这个问题。所以我猜这不是最好的方法。
我的问题是:是否可以使用 AVAudioEngine 安排一系列低延迟的声音,然后循环该序列?如果不是,在 Swift 中编码时,哪种框架/方法最适合调度声音?