问题标签 [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.

0 投票
4 回答
21140 浏览

swift - 使用 AVAudioEngine 的实时音频

嘿。我想用AVAudioEngineSwift 中的新功能实现一个实时音频应用程序。有人对新框架有经验吗?实时应用程序如何工作?

我的第一个想法是将(处理过的)输入数据存储到一个AVAudioPCMBuffer对象中,然后让它播放,AVAudioPlayerNode正如您在我的演示类中看到的那样:

但这与实时相去甚远,而且效率不高。有什么想法或经验吗?没关系,如果您更喜欢 Objective-C 或 Swift,我感谢所有注释、评论、评论、解决方案等。

0 投票
2 回答
11364 浏览

ios - 通过 AudioEngine 使用音效

背景 - 我在 Apple 最近的 WWDC 上发布的以下视频列表中看到了一个名为“实践中的 AVAudioEngine”的视频,用于将音效应用于音频。 https://developer.apple.com/videos/wwdc/2014/

之后,我成功地使用以下代码更改了音频的音高:

据我了解,我使用 AudioEngine 将 AudioPlayerNode 与 AudioEffect 连接起来,然后我将其连接到输出。

我现在对在音频中添加多种音效感到好奇。例如,音高变化和混响。我将如何为音频添加多种音效?

另外,在 viewDidLoad 中附加和连接节点是否有意义,而不是我在 IBAction 中如何完成?

0 投票
2 回答
2126 浏览

ios - How do I connect AVAudioEngine to a Lightning Port audio input?

I'd like to connect my electric guitar to my app. I have hardware (the Line6 Sonic Port) that passes the audio from my guitar into my iPhone. I've figured out how to get audio playing out to my headphones, but it's audio coming from my headphone mic, not the Lightning Port input. How do I programmatically find the Lightning Port audio input, instead of getting audio via the headphone mic?

Here's what I've tried so far:

When I run this, I hear audio - but it's coming from my headphone mic, not the guitar. How can I connect to audio coming from the lightning port?

For a quick illustration, here is the hardware that I'm using: Line6 Sonic Port

0 投票
1 回答
2767 浏览

ios - 使用 AVAudioEngine 将 AVAudioInputNode 连接到 AVAudioUnitEffect

AVAudioInputNode我想使用音频单元效果 ( )处理来自设备内置麦克风 ( ) 的音频AVAudioUnitEffect。对于我的示例,我正在使用AVAudioUnitReverb. 连接AVAudioUnitReverb导致应用程序崩溃。

如果我绕过混响并inputNode直接连接到,我没有问题audioEngine.outputNode,但是我没有混响:

audioEngine.connect(inputNode, to: audioEngine.outputNode, format: inputFormat)

我究竟做错了什么?

更新

我无意中发现,上面的代码只会在我的带有 Remote 和 Mic 的 Apple EarPods连接时使应用程序崩溃。使用设备的内置麦克风时,我没有问题。那么,为什么我耳机上的麦克风会使应用程序崩溃,但只有在使用AVAudioUnitEffect?

0 投票
2 回答
7566 浏览

ios - 使用 AVAudioEngine 重复播放音频文件

我正在使用 Swift 和 Xcode 6 开发 iOS 应用程序。我想做的是使用 AVAudioEngine 播放音频文件,直到此时一切正常。但是我怎样才能不停地播放它,我的意思是,当它结束播放时它会重新开始?

这是我的代码:

在说我应该为此使用 AVAudioPlayer 之前,我不能,因为以后我将不得不使用一些效果并同时播放三个音频文件,还要重复播放。

0 投票
2 回答
6163 浏览

objective-c - 设置 AVAudioEngine 输入和输出设备

我一直在使用 Apple 闪亮的新AVFoundation库,但到目前为止,我无法设置 an 使用的输入或输出设备(例如 USB 声卡)AVAudioEngine,而且我似乎在文档中找不到任何内容说这甚至是可能的。

有人对这个有经验么?

0 投票
0 回答
541 浏览

ios - Why does loadFactoryPreset affect preGain and wetDryMix properties of AVAudioUnitDistortion?

Why does loadFactoryPreset(preset: AVAudioUnitDistortionPreset) affect the preGain and wetDryMix properties of AVAudioUnitDistortion? This implementation seems inconsistent with loadFactoryPreset(preset: AVAudioUnitReverbPreset), which does not alter any properties when changing the preset.

Here's a playground I made to illustrate this point and graphs showing how the properties are altered for each preset.

enter image description here enter image description here

All of the distortion presets sound terrible with a 100% wetDryMix, so I can't help wondering if this is a bug or if there's a good reason for this behavior.

0 投票
1 回答
1855 浏览

ios - 如何在 AVAudioEngine 中使用速率

我们如何在 AVAudioEngine 中使用 rate?

这是我的完整代码:

因此,当我播放声音时,它根本不使用速率。此外,播放完音频后如何重置位置。AVAudioPlayer 有 currentTime 用于重置栏。

Edit1:如果 AVAudioPlayerNode 没有一个类来维护,这是相当令人困惑的原因,为什么它允许我使用 rate 呢?对不起,完全不懂编程。

Edit2:在 Matt 的示例代码的帮助下工作。我错过了音频输出线:

感谢大家的帮助。

0 投票
1 回答
486 浏览

objective-c - AVAudioEngine inputNode 调用抛出错误

我正在开发一个简单的桌面应用程序,它可以同时播放和录制音频。一切都很顺利,直到我以某种方式在其中添加了一个错误 - 现在每次我尝试调用AVAudioEngine'sinputNodemainMixer时,它都会引发错误。

我的标题中有一个属性@property (nonatomic, readonly) AVAudioEngine *engine;,在我的init方法实现中,下面的代码在inputNode调用时抛出:

在所有异常上设置断点会导致调用堆栈的顶部如下所示:

我以前有这个工作,所以我认为我忘记了一些明显的事情?

0 投票
0 回答
528 浏览

swift - 在 Swift 中使用 AVAudioEngine 以更改的时间音调保存音频文件

目前,我正在尝试从 Document 文件夹中更改现有音频文件的时间音高,然后使用 AVAudioEngine 用修改后的文件覆盖旧文件。我已经使用 AVAudioPlayerNode 和 AVAudioUnitTimePitch 完成了第一部分的工作。虽然我不知道第二部分。有人可以指出我正确的方向吗?

谢谢。