使用 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 App布局错误,调用状态栏

    在主动通话和应用程序布局期间面临状态栏问题 我正在使用自动布局 当我运行应用程序 然后开始通话时 一切正常 UI 会随着状态栏的更改而正确缩放 但是 如果我首先开始通话 然后运行应用程序 应用程序屏幕会移动到底部 20pt 就像它们对新状态
  • WebGL iOS 渲染为浮点纹理

    我正在尝试在 iOS Safari 上的 WebGL 中渲染浮点纹理 而不是在本机应用程序中 我已经设法让 iOS 读取手动 例如从 JavaScript 创建的浮点纹理 但是当我创建浮点类型的帧缓冲区并使用 GPU 渲染到其中时 它不起作
  • 应用未能及时恢复

    我在一个非常具体的场景中遇到 未能及时恢复 崩溃 我认为与看门狗相关 仅在从后台恢复时 并且仅在进入后台后在很短的时间内执行此操作 a最多几秒钟 这似乎是相关的崩溃日志 Incident Identifier E30F2238 5B15 4
  • 播放(非库)Apple Music 内容 - 请求失败

    我正在尝试使用以下代码播放专辑 let predicate MPMediaPropertyPredicate value 1459938538 forProperty MPMediaItemPropertyAlbumPersistentID
  • 如何自动为 Swift 类创建初始化程序?

    UPDATE 使用结构而不是类 struct 在很多方面都更好 它有自己的初始化器 这是我的模型课 是否有可能创建init自动方法 每次我都必须将所有变量一一初始化 这会花费很多时间 class Profile var id String
  • iOS 对 Google 云消息传递的支持

    我在谷歌的开发者控制台中看到 GCM 允许为 iOS 生成 API 密钥 我在网上搜索了有关如何在 iOS 应用程序中通过 GCM 实现推送通知的任何类型的文档 但没有找到答案 真的有可能在 iOS 应用程序中使用 GCM 实现推送通知 j
  • 下标:使用字符串枚举访问我的字典值

    我想做类似的事情 使用字符串枚举访问我的字典值 我试图重载字典的下标但没有成功 访问字典 let district address JsonKeys district 其中 JsonKeys 是 enum JsonKeys String c
  • XCode 调试 - 我可以绕过反汇编代码的单步执行吗

    调试项目时 在 XCode 中设置断点后 我将开始单步执行代码 然后我会遇到反汇编代码 我认为这些代码是对没有可用源代码的各种框架的调用 这是一个正确的假设吗 有没有一种方法 可能通过我尚未找到的项目设置 来抑制此汇编代码的显示 而不必单步
  • UIViewController 作为单例

    我在标签栏应用程序中有一个 UIViewController 我已经从 MainWindow nib 文件添加了控制器 即不是以编程方式 我的问题是如何使我的视图控制器成为单例 解决 Facebook 委托问题 您可能想让您的 Facebo
  • 如何比 CGContextStrokePath 更快地渲染线条?

    我正在使用 CGContextStrokePath 绘制约 768 个点的图表 问题是 每一秒我都会得到一个新的数据点 从而重新绘制图表 目前 这个已经很繁忙的应用程序占用了 50 的 CPU 图形绘制是在UIView 中的drawRect
  • Xcode 9.0.1 应用程序分发程序已更改

    最近我将 Xcode 升级到了 Xcode 9 1 之后 当我尝试发布我的应用程序时 Xcode 不允许选择我为临时创建的分发配置文件 这么说 配置文件不是 IOS 应用商店配置文件 如果 Xcode 9 1 的应用程序分发过程有变化 请告
  • CocoaPods 生成无效的项目文件(未找到标头)

    我有一个带有 Podfile 的项目文件 如下所示 platform ios 7 0 def import pods pod Specta 0 1 8 pod Expecta 0 2 1 pod RestKit 0 20 3 pod Mag
  • 删除部分(红色删除按钮),UITableViewController - iOS

    我正在尝试做一个分组的 uitableview 并且我已经激活了编辑选项 我希望用户也能够删除整个部分 而不仅仅是特定行 因此 当您单击 编辑 时 每个表格单元格左侧显示的红色减号按钮也应该显示在各个部分 部分标题左侧 有人知道如何做到这一
  • 从 AF.Request 响应获取数据

    我需要使用 Alamofire 的 Post 请求调用的 json 响应中的数据 但由于某种原因我无法访问该数据 我尝试按照 Alamofire github 文档以及这篇文章进行操作从 AF 响应 JSON 获取数据 https stac
  • 防止 UITableView 滚动到某个点以下

    如何让 UITableView 允许在某个索引行上方滚动 但在低于某个点时阻止滚动 例如 如果我有第 1 行到第 100 行 其中在给定时间视图中仅出现 5 行 我希望允许用户在第 1 50 行之间滚动 但在第 50 行可见时阻止进一步向下
  • NSPredicate 使用 RLMResults 作为参数

    我试图通过使用 NSPredicate 进行过滤来获取两组 Realm 数据 并且是不同的对象 之间的差异 但存在一个我无法理解的错误 我的代码 RLMResults topStories KFXTopStory allObjects NS
  • 以编程方式添加带有自动布局的 UISLider

    我正在尝试以编程方式将 UISlider 添加到我的视图中 包括约束 以便其宽度适应整个屏幕宽度 这是我到目前为止得到的 2 Add UISlider self slider UISlider alloc init self view ad
  • RxSwift、RxCocoa 和 UITableview

    我在使用 RxSwift 实现 UITableView 时遇到问题 我尝试使用以下代码将模型数组的可观察对象绑定到表项 models bind to self tableView rx items cellIdentifier Cell c
  • iOS SDK:MapKit MKPolyLine 未显示

    我试图在地图上显示多段线 但该线没有显示 我尝试了很多事情 但注意到似乎有用 我检查了核心数据函数 它正在返回数据 所以这不是问题 它必须是我在地图点创建或地图上绘制的某个地方 我猜 我确信一定是某个地方出了点小错误 但我找不到它 My c
  • 如何在 iOS 5 中使用 Embed Segue?

    iOS 6 引入了 Embed Segue 允许在 Storyboard 中使用自定义容器控制器 有没有办法在 iOS 5 上复制这个 这里的挑战是子视图控制器的视图通常要添加为父视图控制器的某些容器视图的子视图 因为你不能随机进行序列UI

随机推荐

  • 检查 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导致应用程序崩溃