gpt4 book ai didi

ios - AVAudioEngineImpl::IOUnitConfigurationChanged() 崩溃

转载 作者:行者123 更新时间:2023-12-01 15:52:14 25 4
gpt4 key购买 nike

我使用音频引擎。在崩溃报告中,我看到一些随机的 EXC_BREAKPOINT 崩溃与此堆栈跟踪

Exception Type:  EXC_BREAKPOINT (SIGTRAP)  
Exception Codes: 0x0000000000000001, 0x00000001896df0e4
Termination Signal: Trace/BPT trap: 5
Termination Reason: Namespace SIGNAL, Code 0x5
Terminating Process: exc handler [12467]
Triggered by Thread: 15

Thread 15 Crashed:
0 libdispatch.dylib 0x00000001896df0e4 __DISPATCH_WAIT_FOR_QUEUE__ + 448 (queue.c:1619)
1 libdispatch.dylib 0x00000001896dec74 _dispatch_sync_f_slow + 140 (queue.c:1732)
2 libdispatch.dylib 0x00000001896dec74 _dispatch_sync_f_slow + 140 (queue.c:1732)
3 AVFAudio 0x00000001965b11a8 -[AVAudioEngine dealloc] + 308 (AVAudioEngine.mm:406)
4 Foundation 0x0000000189ce52ac -[NSConcreteNotification dealloc] + 68 (NSNotification.m:206)
5 AVFAudio 0x00000001965b7158 invocation function for block in AVAudioEngineImpl::IOUnitConfigurationChanged() + 292 (AVAudioEngine.mm:1215)
6 libdispatch.dylib 0x00000001896de998 _dispatch_block_async_invoke2 + 104 (queue.c:525)
7 libdispatch.dylib 0x00000001896fb184 _dispatch_client_callout + 16 (object.m:495)
8 libdispatch.dylib 0x00000001896d4e8c _dispatch_continuation_pop$VARIANT$armv81 + 404 (inline_internal.h:2484)
9 libdispatch.dylib 0x00000001896e502c _dispatch_source_invoke$VARIANT$armv81 + 1232 (source.c:568)
10 libdispatch.dylib 0x00000001896d85e0 _dispatch_lane_serial_drain$VARIANT$armv81 + 260 (inline_internal.h:2525)
11 libdispatch.dylib 0x00000001896d9128 _dispatch_lane_invoke$VARIANT$armv81 + 400 (queue.c:3863)
12 libdispatch.dylib 0x00000001896e243c _dispatch_workloop_worker_thread + 576 (queue.c:6445)
13 libsystem_pthread.dylib 0x000000018974ab88 _pthread_wqthread + 276 (pthread.c:2351)
14 libsystem_pthread.dylib 0x000000018974d760 start_wqthread + 8

我无法重现此崩溃,堆栈跟踪也没有指向我的代码。有谁知道这次崩溃的原因是什么,如何修复以及是否有可能修复?谢谢

最佳答案

根据AVAudioEngineConfigurationChange的苹果文档,在处理此通知期间,您不得释放引擎。

Note The engine must not be deallocated from within the client'snotification handler. Callback happens on an internal dispatch queueand can deadlock while trying to teardown the engine synchronously.

虽然你当时没有发布,但是可以造成。iOS 11 或 12 中的 AVAudioEngine 可能会卡在通知之前,然后您稍后发布引擎。

有解决方法。您必须重新使用音频引擎而不是重新创建。

关于ios - AVAudioEngineImpl::IOUnitConfigurationChanged() 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59894572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com