使用 AVAudioEngine 将 AVAudioInputNode 连接到 AVAudioUnitEffect

2024-04-10

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

import UIKit
import AVFoundation

class ViewController: UIViewController {

    let audioEngine = AVAudioEngine()
    let unitReverb = AVAudioUnitReverb()

    var inputNode: AVAudioInputNode!

    override func viewDidLoad() {
        super.viewDidLoad()

        inputNode = audioEngine.inputNode
        audioEngine.attachNode(unitReverb)

        let inputFormat = inputNode.inputFormatForBus(0)
        audioEngine.connect(inputNode, to: unitReverb, format: inputFormat)

        // This line is crashing the application!
        // With this error "AVAudioNode.mm:521: AUSetFormat: error -10868"
        audioEngine.connect(unitReverb, to: audioEngine.outputNode, format: inputFormat)

        audioEngine.startAndReturnError(nil)
    }

}

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

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

我究竟做错了什么?

Update

我无意中发现上面的代码只会在我的带线控和麦克风的 Apple EarPods http://store.apple.com/us/product/MD827LL/A/apple-earpods-with-remote-and-mic连接。使用设备的内置麦克风时,我没有任何问题。那么,为什么我的耳机上的麦克风会使应用程序崩溃,但仅在使用耳机时才发生?AVAudioUnitEffect?


经过一番尝试和错误后,更改格式参数似乎解决了这个问题。修改后的代码如下所示:

let format = unitReverb.inputFormatForBus(0)
audioEngine.connect(inputNode, to: unitReverb, format: format)
audioEngine.connect(unitReverb, to: audioEngine.outputNode, format: format)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 AVAudioEngine 将 AVAudioInputNode 连接到 AVAudioUnitEffect 的相关文章

  • iOS 中的构建对象文件扩展名是什么?

    当我在项目中构建java对象类时 将创建带有 class扩展名的构建文件 并且人类不可读 快速构建文件怎么样 example car java gt build gt car class 构建后会是什么 car swift gt build
  • 如何恢复消耗品应用内购买?

    我正在开发一款 iOS 游戏 用户可以通过应用内消耗品购买一定数量的内部货币 比如 1000 金币 如果用户想将余额从一台设备转移到另一台设备 如何恢复消耗品购买 在苹果的文档中 它说我们必须使用我们自己的服务器 但是如何获取用户的Appl
  • 进入前台后刷新数据

    更改默认设置后 我想在AppDelegate中进入前台时刷新myViewController的数据 我所做的是 AppDelegate m void applicationDidFinishLaunching UIApplication a
  • iOS:提高图像绘制速度

    我有一系列想要制作动画的图像 UIImageView支持一些基本的动画 但不足以满足我的需求 我的第一个方法是使用UIImageView并设置image当图像属性 这太慢了 速度慢的原因是图像的绘制 这让我感到惊讶 我以为瓶颈会加载图像 我
  • iphone:如何停止快门动画?

    我有两个问题 1 我想知道如何在相机加载时停止快门动画 我正在使用 UIImagePickerController 我已经参考了堆栈溢出的许多答案 但没有成功 2 我在相机中有一个自定义按钮 使用cameraOverlayView并想通过单
  • WhatsApp 显示警告“此项目无法共享。请选择其他项目。”对于 iOS 应用程序。

    我正在开发一个 iOS 应用程序 在该应用程序中 我有社交共享功能 并且社交共享功能使用深度链接来共享 URL 该网址共享对于所有应用程序都运行良好 除了WhatsApp 它会显示一个警报弹出窗口 此项目无法共享 请选择其他项目 以下是我的
  • 为什么我的视图仍然以横向呈现?

    我的视图是由导航控制器控制的 因此我将导航控制器支持的方向设置为明确的纵向和纵向UpSideDown 这可以工作 但是如果调用视图时前一个视图处于横向状态 它将以横向方式呈现并保持横向状态 直到设备旋转 如何防止这种情况发生 这是我的代码
  • 苹果企业程序分发问题[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 这个问题涉及到Apple iOS 开发者企业计划 http developer apple com programs ios enterprise 我
  • IPV6 快速可达性

    我是 swift 和 xcode 的新手 并且我的应用程序因 IPV6 而被拒绝 性能 2 1 当我们执行以下操作时 您的应用程序会在运行 iOS 9 3 5 并连接到 IPv6 网络的 iPad 和 iPhone 上崩溃 具体来说 当我们
  • iOS 13 beta 外部屏幕上的 OverscanCompensation

    我正在测试一个应用程序的测试版 但遇到了外部屏幕的问题 我们看到应用程序周围有黑色边框 我们之前可以通过设置来纠正它overscanCompensation to none但在 iOS 13 中 该设置根本没有任何效果 我们曾经看到一个错误
  • 核心数据 NSFetchRequest 还获取实体的子对象

    我是 iOS 开发和 Core Data 的新手 我有一个父 NSManagedObject class Units interface Properties NSManagedObject property nonatomic retai
  • 在运行时获取 iPhone 应用程序的产品名称?

    如何才能实现这一目标 我想获取名称 以便可以在应用程序中显示它 当然 每次更改名称时不必在代码中更改它 Try this NSBundle bundle NSBundle mainBundle NSDictionary info bundl
  • 检索 iPhone 中的 Outlook 联系人

    我想通过应用程序导入所有 Outlook 联系人 有什么办法可以做到这一点吗 请告诉我 您可以通过实施 Microsoft Exchange 服务器协议来实现此目的 微软MSDN http msdn microsoft com en us
  • Objective-C中如何使继承的类能够看到父类的隐藏方法[重复]

    这个问题在这里已经有答案了 我有两个类 Class1 和 Class2 第二个类继承自第一个类 我需要重写 Class1 的 update 方法来实现我的目标 继承方法中 update方法的改变是在代码中间进行的 所以我不能使用 超级更新
  • React Native:不透明视图内的透明视图

    我想用不透明框架和透明中心显示相机的视图 就像图片中的一样 黑色部分是相机的视图 我正在寻找具有纯反应本机组件的解决方案 没有额外的库 例如https github com gilbox react native masked view h
  • 如何在 ios 7 上更改重新排序控制图像

    我正在寻找一种更改重新排序控件图像和大小的方法 我使用此代码来更改重新排序图像 void tableView UITableView tableView willDisplayCell UITableViewCell cell forRow
  • 迁移到 ARC 时如何解决“选择器'performSelector:withObject:afterDelay:'没有已知的实例方法”?

    ARC 迁移工具在开始迁移之前拒绝接受此代码 self delegate performSelector selector overlayDismissed withObject self afterDelay 0 委托被迫使用协议来实现此
  • 如何自动缩放mapView以显示叠加层

    我可以在 mapView 上绘制多边形 但是我需要找到多边形并手动缩放它 有没有办法自动执行此过程 例如调整中心多边形 我浏览过互联网并阅读了一些相关文章 其中大多数都是基于折线和点的 任何形式的帮助将不胜感激 因为我正在寻找解决方案一段时
  • 如何在 UICollectionView 的节标题中动态添加标签和按钮?

    请帮助我如何水平添加标签和水平添加类似的按钮 但每个按钮应像另一个部分一样在每个标签的下方对齐 这应该在 UICollectionView 的标题中动态发生 因为标签和按钮的数量根据我的数据 我想制作一种 Excel 类型的布局 并在标题中
  • 如何防止 RealmSwift 列表中出现重复项?

    如何防止向列表中添加重复项RealmSwift 我有我的User作为领域对象 但真正的数据源是服务器 只是使用领域在本地缓存用户 当我从服务器获取当前用户数据时 我想确保存储在领域中的用户拥有来自服务器的所有播放列表 以及它们的曲目列表等

随机推荐

  • 检查 Ember Handlebar If 块助手中的值是否等于

    我们如何检查值是否相等ember js http www emberjs com的 If 块助手 if person John 我们如何在车把上执行上述操作 The if helper 只能测试属性 不能测试任意表达式 因此 在这种情况下
  • 在nodeJs socket.io中,webstorm中的方法未解决

    我正在节点中学习socket io 并且我已经使用 安装了该模块 npm install socket io save 这是我的代码 var app require express var http require http Server
  • 使用 Maven 3 设置 Struts2 EAR 项目

    我正在迁移自Apache Ant Apache Ivy to Apache Maven用于新项目的生命周期管理 我从未在正式版本中使用过 Maven 所以我对此完全是新手 目前我已经安装并配置Maven 3 http maven apach
  • 静态变量与成员

    如果某个类的数据将被修改并且需要在整个程序中保留 但仅在一个成员函数中使用 那么最好将该变量设为其所在例程的局部静态变量 还是使其成为该例程的局部静态变量 班级成员 问题不是 数据将在整个程序中使用 而是 如果您创建此类的两个对象 您是否希
  • 使用 nltk 中的meteor_score模块评估模型时如何实现meteor分数?

    我目前有 2 个文件 reference txt 和 model txt 这两个文本文件包含原始字幕和训练后生成的字幕 我可以简单地执行以下操作来获取流星分数 score nltk translate meteor score meteor
  • 如何以MVVM模式加载wpf用户控件

    我正在创建一个采用 mvvm 模式的 wpf 用户控件 所以我们有 视图 代码隐藏文件中没有代码 视图模型 模型 数据访问文件 I have 主窗口 xaml 作为视图文件 我需要与之绑定主窗口模型 cs 通常 在 wpf 应用程序中 我们
  • pandas groupby 和rolling_apply 忽略NaN

    我有一个 pandas 数据框 我想计算列的滚动平均值 在 groupby 子句之后 但是 我想排除 NaN 例如 如果 groupby 返回 2 NaN 1 则结果应为 1 5 而当前它返回 NaN 我尝试了以下方法 但似乎不起作用 df
  • 如何将变量的值(字符串)设置为等于数组中的键?

    我有以下数组 var deckArray card1 rank suit card2 rank suit card3 rank suit card4 rank suit card5 rank suit card6 rank suit car
  • 如何在ArrayAdapter中的列表开头添加对象?

    ArrayAdapter 有方法add T object 在列表末尾添加一个对象 有没有办法在列表的开头添加对象 您可以使用 insert T object int index http developer android com refe
  • 从模板访问模型

    在玩 ember 时 我发现有时模型存储在控制器的content属性 有时模型也可以直接在控制器上使用 然而 当这种情况发生时 我不明白 让我用一个我在组装 ember MVC 时发现的例子来解释一下 设置 A 开始 我定义了一个自定义Me
  • 如何使调整 WPF 窗口大小时不那么“滞后”?

    我对 WPF 世界比较陌生 我立即注意到的一件事是 当您调整窗口大小时 窗口内容的绘制是多么滞后 例如 如果窗口边缘有滚动条 则这些滚动条在缩小时将部分隐藏 并且在放大时它们与窗口边框之间有空间 即使在 Visual Studio 中创建的
  • Drupal 6模块安装文件未在数据库中创建表

    我正在使用 Schema API 在 Drupa 6 17 上为我的模块创建表 但这些表并未在数据库中创建 我安装了架构模块 它告诉我 虽然我的模块的架构被识别 但它的表不在数据库中 它出现在 缺失 下 Tables in the sche
  • React Native - 设置 secureTextEntry 时无法更改字体

    const entryInput forwardRef props ref gt return
  • 从 url 获取子域名?

    我需要从 url 中获取一些值 就像如果网址是http www random mysite com 然后我想以某种方式得到random 但是如果使用的话这应该也有效www http or https 网址前面 那么如何才能做到这一点呢 我试
  • 如何使用 ORMLite 查询构建器获取表中的总记录

    如同 select count from tablename 在 ORMLITE 中应该查询什么 我尝试过类似的东西 int total dao queryBuilder select count 如何使用 ORMLite 查询构建器获取表
  • JavaScript .hashchange 性能。它能带来任何放缓吗?

    jQuery hashchange 事件 http benalman com projects jquery hashchange plugin 对我来说 它看起来是目前最成熟的解决方案 如果我错了 请纠正我 我真的很喜欢这个用于操作浏览器
  • Facebook Messenger 平台/机器人欢迎配置出现奇怪错误

    我在为 Messenger 机器人配置欢迎消息时遇到奇怪的错误 我一直在使用相同的代码 如下所示 直到昨晚它一直工作正常 我尝试了 cURL 和Postman https www getpostman com 它们都不起作用 curl X
  • 适用于 Android 的 USB 主机

    I am trying to communicate with my freeduino board which is similar to arduino uno via usb through android device nexus
  • 在Java中检查服务器上的路径是否存在[重复]

    这个问题在这里已经有答案了 我正在创建一个 Java 程序 在其中将文件上传到特定路径上的服务器 我在用jSch for sftp 因此 在上传文件之前 我想检查服务器上是否存在给定的目录 if path exists upload fil
  • 使用 AVAudioEngine 将 AVAudioInputNode 连接到 AVAudioUnitEffect

    我想处理来自设备内置麦克风的音频 AVAudioInputNode 带有音频单元效果 AVAudioUnitEffect 对于我的例子 我正在使用AVAudioUnitReverb 连接中AVAudioUnitReverb导致应用程序崩溃