AVAudioEngine 在 iOS14 中获取 inputNode 属性崩溃

2024-01-01

这是一个启动audioEngine的函数。

- (void)startAudioEngine {
    NSError *error = nil;
    if (!self.audioEngine.isRunning) {
        self.audioEngine = [[AVAudioEngine alloc] init];
        AVAudioInputNode *inputNode = self.audioEngine.inputNode;
        AVAudioFormat *nativeAudioFormat = [inputNode inputFormatForBus:0];
        __weak typeof(self)weakSelf = self;
        [inputNode installTapOnBus:0 bufferSize:1024 format:nativeAudioFormat block:^(AVAudioPCMBuffer * _Nonnull buffer, AVAudioTime * _Nonnull when) {
            [weakSelf.recognitionRequest appendAudioPCMBuffer:buffer];
        }];
        [self.audioEngine prepare];
        [self.audioEngine startAndReturnError:&error];
        if (error) {
            [self stop];
            [self onError:[NSError errorWithDomain:@"startAudioEngine error" code:0 userInfo:nil]];
        }
        else {
            [self activeStatusChanged:MMSpeechRecognizerActiveStatusStared];
        }
    }
    else {
        [self stop];
        [NSError errorWithDomain:@"The audio engine is runing" code:0 userInfo:nil];
    }
}

iOS 14 中 self.audioEngine.inputNode 行崩溃。

以下是一些错误日志:

[plugin] AddInstanceForFactory: No factory registered for id <CFUUID 0x6000032144c0> F8BB1C28-BAE8-11D6-9C31-00039315CD46
HALB_IOBufferManager_Client::GetIOBuffer: the stream index is out of range
HALB_IOBufferManager_Client::GetIOBuffer: the stream index is out of range
[aqme] 255: AQDefaultDevice (1): output stream 0: null buffer
[aqme] 1778: EXCEPTION thrown (-50): error != 0
 Initialize: Mach message timeout. Apparently deadlocked. Aborting now.
CoreSimulator 725.10 - Device: iPhone 11 (003A9CF3-FDD7-4C44-8607-CAB3FDBB904B) - Runtime: iOS 14.0 (18A5301v) - DeviceType: iPhone 11

PO bt 在控制台中显示:

(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
  frame #0: 0x00007fff215a233a libsystem_kernel.dylib`pthread_kill + 10
  frame #1: 0x00007fff215d7e60 libsystem_pthread.dylib`pthread_kill + 430
  frame #2: 0x00007fff200c7c24 libsystem_c.dylib`abort + 120
  frame #3: 0x00000001082ce5c9 AudioToolboxCore`_ReportRPCTimeout(char const*, int) + 90
  frame #4: 0x0000000130cffbd9 libEmbeddedSystemAUs.dylib`_CheckRPCError(char const*, int, int) + 92
  frame #5: 0x0000000130cfc4e0 libEmbeddedSystemAUs.dylib`AURemoteIO::Initialize() + 1878
  frame #6: 0x0000000130d15ec6 libEmbeddedSystemAUs.dylib`AUBase::DoInitialize() + 36
  frame #7: 0x0000000130c9c47f libEmbeddedSystemAUs.dylib`AUMethodInitialize(void*) + 59
  frame #8: 0x00000001083c31bb AudioToolboxCore`-[AUAudioUnitV2Bridge allocateRenderResourcesAndReturnError:] + 77
  frame #9: 0x0000000105aa0dbf AVFAudio`AUInterfaceBaseV3::Initialize() + 45
  frame #10: 0x0000000105a8b90f AVFAudio`AVAudioIONodeImpl::GetInputFormat(unsigned long) + 125
  frame #11: 0x0000000105a8b5d3 AVFAudio`AVAudioIONodeImpl::SetOutputFormat(unsigned long, AVAudioFormat*) + 571
  frame #12: 0x0000000105a86022 AVFAudio`-[AVAudioNode setOutputFormat:forBus:] + 70
  frame #13: 0x0000000105a9d1e3 AVFAudio`AVAudioEngineImpl::UpdateInputNode(bool) + 921
  frame #14: 0x0000000105a98fd8 AVFAudio`-[AVAudioEngine inputNode] + 88
 * frame #15: 0x0000000102c64391 iOS14Demo`-[MMSpeechRecognizer startAudioEngine](self=0x0000600002777c40, _cmd="startAudioEngine") at MMSpeechRecognizer.m:72:56
  frame #16: 0x0000000102c651fd iOS14Demo`-[MMSpeechRecognizer start](self=0x0000600002777c40, _cmd="start") at MMSpeechRecognizer.m:175:13
  frame #17: 0x0000000102c63929 iOS14Demo`-[ViewController siriBtnClick:](self=0x00007f8dda60b650, _cmd="siriBtnClick:", sender=0x00007f8ddb80b3a0) at ViewController.m:66:9
  frame #18: 0x0000000114403f15 UIKitCore`-[UIApplication sendAction:to:from:forEvent:] + 83
  frame #19: 0x0000000113d5da2a UIKitCore`-[UIControl sendAction:to:forEvent:] + 223
  frame #20: 0x0000000113d5dd4d UIKitCore`-[UIControl _sendActionsForEvents:withEvent:] + 332
  frame #21: 0x0000000113d5c636 UIKitCore`-[UIControl touchesEnded:withEvent:] + 500
  frame #22: 0x000000011443f389 UIKitCore`-[UIWindow _sendTouchesForEvent:] + 1287
  frame #23: 0x00000001144411ea UIKitCore`-[UIWindow sendEvent:] + 4750
  frame #24: 0x000000011441b39d UIKitCore`-[UIApplication sendEvent:] + 428
  frame #25: 0x00000001144aabb1 UIKitCore`processEventQueue + 14793
  frame #26: 0x00000001144a175f UIKitCore`eventFetcherSourceCallback + 106
  frame #27: 0x00000001034f18bc CoreFoundation`CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 17
  frame #28: 0x00000001034f17fb CoreFoundation`CFRunLoopDoSource0 + 157
  frame #29: 0x00000001034f0f3f CoreFoundation`CFRunLoopDoSources0 + 222
  frame #30: 0x00000001034eba20 CoreFoundation`CFRunLoopRun + 882
  frame #31: 0x00000001034eb2fa CoreFoundation`CFRunLoopRunSpecific + 538
  frame #32: 0x00000001081ebdb3 GraphicsServices`GSEventRunModal + 139
  frame #33: 0x00000001143fd942 UIKitCore`-[UIApplication _run] + 912
  frame #34: 0x0000000114402f62 UIKitCore`UIApplicationMain + 1570
  frame #35: 0x0000000102c660ca iOS14Demo`main(argc=1, argv=0x00007ffeecf9bc80) at main.m:17:12
  frame #36: 0x00007fff20222941 libdyld.dylib`start + 1
(lldb) 

iOS 14。Xcode 12-beta。

在 self.audioEngine.inputNode 行崩溃。 iOS14 崩溃。 iOS14之前不会崩溃。

为什么? iOS 14 中的系统 API 错误?


这是 Apple 的 iOS 系统错误。

苹果已经解决了这个问题。 出现在版本 12.0 beta (12A6159) 中。 Apple 在版本 12.0 beta 2 (12A6163b) 中已解决。

接下来:更新 Xcode 并再次测试。

Thanks.

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

AVAudioEngine 在 iOS14 中获取 inputNode 属性崩溃 的相关文章

随机推荐

  • React-router 6 导航到使用参数

    在 v5 中我有这样的结构 path someurl id exact true render params gt
  • 在哪里可以找到 Mac OS X Lion 的“make”程序?

    刚刚将我的计算机升级到 Mac OS X Lion 然后进入终端并输入 make 但它显示 bash make 找不到命令 make 命令去哪儿了 您需要从以下位置安装 Xcode应用商店 http itunes apple com us
  • 需要隐藏 ansible 任务中失败的登录

    我是 ansible 任务的新手 正在创建一个执行登录操作的 yml 如果登录失败 则需要调用一些脚本 name Logging Action shell usr local bin cqlsh u xyzyx p 1234abc regi
  • 直觉类型理论的组合逻辑等价物是什么?

    我最近完成了一门以 Haskell 和 Agda 一种依赖类型函数编程语言 为特色的大学课程 并且想知道是否有可能用组合逻辑代替其中的 lambda 演算 在 Haskell 中 使用 S 和 K 组合器似乎可以实现这一点 从而使其成为无点
  • java 解析布尔值可能为空的布尔值

    我注意到一个问题java lang 布尔值 https docs oracle com javase 7 docs api java lang Boolean html类无法解析空值 我知道它有parseBoolean https docs
  • 如何隐藏

    我试图隐藏这些 p p
  • Lollipop 的应用程序兼容性、兼容性和支持库(如果最低 SDK = 14)

    我们有一个现有的 Android 应用程序 支持 API 级别 8 至 18 我们使用兼容性库 19 1 0 现在我们正在更改 升级为 最低 SDK 14 目标 android 22 现在考虑到不同版本都有 v4 v7 v13 支持 兼容性
  • ResolveEventArgs.RequestingAssembly 为 Null

    我正在尝试通过反射动态加载程序集 我有这样的文件夹结构 project BIN myApp exe SOMEEXTENTION1 someExtention1 dll itsDependency1 dll SOMEEXTENTION2 so
  • R 以编程方式更改 IP 地址

    目前通过将不同的字符串传递给来更改 user agenthtml session method 还有一种方法可以在抓取网站时更改计时器上的 IP 地址吗 您可以通过以下方式使用代理 它会更改您的IP use proxy如下 html ses
  • Cucumber + 测试 JS 警报

    我正在尝试使用 Cucumber on Rails 测试 JS 确认对话框 我有一个 window onbeforeunload 事件处理程序 如果您尝试离开该页面 它会提示您一个确认对话框 但我不知道如何测试它 有人知道如何做到这一点吗
  • 我可以使用最新的稳定 TypeScript 还是应该坚持使用 AngularCLI 附带的版本?

    我找不到任何关于是否使用可用的最新稳定版本升级 TypeScript 版本的官方建议 npm 版本自动设置在package json创建新项目时通过 AngularCLI 目前是 typescript 2 4 2 这意味着最新的2 4 x版
  • 在单个 ROC 图上绘制线性判别分析、分类树和朴素贝叶斯曲线

    数据显示在页面的最底部 称为 LDA scores 这是一个分类任务 我在数据集上执行了三种监督机器学习分类技术 提供所有编码以显示这些 ROC 曲线是如何生成的 我很抱歉提出了一个有问题的问题 但近两周来我一直在尝试使用不同的代码组合来解
  • 如何合并多个 BIRT 报告

    我们目前拥有一整套报告设计 涵盖了我们应用程序的各个部分 并且这些报告是根据用户的需求生成的 我希望能够将其中几个报告捆绑成一个报告以返回给用户 我最初破解了一个自定义报告生成器 它使用报告库文件中的段生成报告设计文件 然后运行生成的设计
  • 在 PERL 中从 Windows 访问 Microsoft SQL Server

    我正在使用 SQL Server 驱动程序 但这是我得到的以下错误 DBI connect Driver SQL Server database host cartertest failed Microsoft ODBC Driver Ma
  • 如何使用另一个模块的反应式数据帧更新闪亮模块

    该模块的目标是创建一个根据数据选择器模块的输出而变化的反应性条形图 不幸的是 条形图没有更新 它停留在选定的第一个变量上 我尝试创建观察者函数来更新条形图 但无济于事 我还尝试将选择器服务器模块嵌套在 barplot 模块中 但出现错误 警
  • 装配性能调整

    我正在编写一个编译器 更多的是为了好玩 但我想尝试使其尽可能高效 例如 我被告知在英特尔架构上使用除EAX执行数学运算会产生成本 大概是因为它交换为EAX进行实际的数学计算 这里至少有一个来源说明了这种可能性 http www swanso
  • MediaTek 处理器上的双精度值计算错误

    我发现我在市场上发布的一款应用程序在某些手机上产生了奇怪的结果 经过调查发现 一个计算两个地理点之间距离的函数存在问题 有时它会返回完全错误的值 此问题仅在具有以下功能的设备上重现联发科MT6589 http www mediatek co
  • localstorage - 保存数组[重复]

    这个问题在这里已经有答案了 我有本地存储 可以保存输入并将它们推送到列表中 现在我想将列表保存在本地存储中 因为当我重新加载列表时 列表会重置var fav new Array 在此开头定义jsFiddle http jsfiddle ne
  • 如何在 java 中解组 ruby​​ 对象?

    我有一个对象 我想用java获取它的内容 唯一的问题是目前在 ruby 中 irb main 050 0 gt blah gt BAh7ByIeYXV0aGVudGljYXRpb25fc3RyYXRlZ2llczAiCXVzZXJpBg 2
  • AVAudioEngine 在 iOS14 中获取 inputNode 属性崩溃

    这是一个启动audioEngine的函数 void startAudioEngine NSError error nil if self audioEngine isRunning self audioEngine AVAudioEngin