Я вижу сбой в SceneKit, которого не было до iOS 13.1.2.
Я проследил проблему до следующей функции и не могу полностью выяснить, что вызывает проблему.
Если я закомментирую строку, которая запускает действие на узле, все хорошо.
Я могу запустить действия playAudio на других уже существующих узлах сцены, но когда я просто хочу получитьВоспроизведение звука одним выстрелом с использованием приведенной ниже функции, приложение вылетает.
Так что я думаю, что, возможно, это как-то связано с тем, как я создаю экземпляр узла, но я не могу придумать другого способа создания экземпляра узлапросто для воспроизведения звука в заданной позиции.
Я также пытался использовать переработанный источник звука, но это не имеет значения.
Возможно, у кого-нибудь есть какие-либо идеи о том, что может происходить в этомкод, чтобы вызвать сбой? Это просто неочевидно для меня, тем более что это работало безупречно до обновления iOS.
Я включил обратную трассировку ниже.
Большое спасибо за любую помощь / идеи!
Хороших выходных!
Приветствия!
func play(sound: String, atPosition: SCNVector3, volume: Float, pitch: Float, loops: Bool, positional: Bool) {
// Sources will be pre-loaded and recycled for the finished app
if let source = SCNAudioSource(fileNamed: "art.scnassets/"+sound)
{
source.volume = volume
source.rate = pitch
source.isPositional = positional
source.shouldStream = false
source.loops = loops
source.load()
let node = SCNNode()
node.name = "oneShot"
node.position = atPosition
scnScene.rootNode.addChildNode(node)
// node.runAction(SCNAction.sequence([SCNAction.playAudio(source, waitForCompletion: true), SCNAction.removeFromParentNode()]))
// This line causes the crash
node.runAction(SCNAction.playAudio(source, waitForCompletion: false))
}
}
- тема # 14, имя = 'com.apple.scenekit.scnview-renderer', queue = 'com. 140 кадр № 2: 0x00000001bd5b66e8 AVFAudio
AVAudioEngineImpl::AttachNode(AVAudioNode*, bool) + 272
frame #3: 0x00000001bd5b2324 AVFAudio
- [AVAudioEngine attachNode:] + 80 кадр № 4: 0x00000001c4aea48c SceneKit CPP3DAudioContext::AddVoice(void const*) + 120
frame #5: 0x00000001c4aeacf0 SceneKit
CPP3DAudioEngine :: AddVoice (void const *) + 192 кадр00N000 * 6 0 30 0 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 0 0 0 6 0 6 0 0 0 0 6 0 0 6 0 0 6 6 0 СО 2 0 СО 6ННН 0 0 0 0 0 0 0 0 0 0 0 0 6 0 0 6 6 0 6 0 0 6 0 6 6 0 0СЦ:addAudioPlayer:] + 132 фрейма # 8: 0x00000001c49325e0 SceneKit SCNCPlaySound::cpp_updateWithTargetForTime(SCNNode*, double) + 96
frame #9: 0x00000001c499c690 SceneKit
SCNActionApply + 112 фрейма # 10: 0x00000001c4a2d7a4 SceneKit _applyActions + 236
frame #11: 0x00000001b0a8e1b8 CoreFoundation
- [ NSFrozenDictionaryM __apply: контекст:] 00000 фреймов Sc: 0 0 0 800 ф. eKit C3DAnimationManagerApplyActions + 104
frame #13: 0x00000001c4a173e4 SceneKit
- [SCNRenderer _update:] + 576 frame # 14: 0x00000001c4a19a04 SceneKit -[SCNRenderer _drawSceneWithNewRenderer:] + 200
frame #15: 0x00000001c4a19fbc SceneKit
- [SCNRenderer _drawScene:] + 48 кадр # 16: 0x00000001c4a1a350 SceneKit -[SCNRenderer _drawAtTime:] + 616
frame #17: 0x00000001c4ab46b8 SceneKit
]: SCE 18T: - SCE0x00000001c497ae38 SceneKit __69-[NSObject(SCN_DisplayLinkExtensions) SCN_setupDisplayLinkWithQueue:]_block_invoke + 56
frame #19: 0x00000001c4a7fe48 SceneKit
__ 36- [SCNDisplayLink _callbackWithTime:] _ block_invoke + 64 кадр # 20: 0x0000000105726c04 libdispatch.dylib _dispatch_client_callout + 16
frame #21: 0x0000000105735888 libdispatch.dylib
124 + _dispatch_lane_barrier_sync_invoke_and_complete кадр # 22: 0x00000001c4a7fdd8 SceneKit * * тысяча тридцать девять - [DYDisplayLinkInterposer forwardDisplayLinkCallback:] + 168 кадр # 24:0x00000001b73da514 QuartzCore CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) + 632
frame #25: 0x00000001b1acdeb0 IOKit
IODispatchCalloutFromCFMessage + 488 кадр # 26: 0x00000001b0ae96d4 CoreFoundation __CFMachPortPerform + 172
frame #27: 0x00000001b0b12e5c CoreFoundation
__ CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION * тысяча сорок-две + 56 кадр # 28: 0x00000001b0b12588 CoreFoundation * +1043 * CFRunLoopRun + 2168 кадр # 30: 0x00000001b0b0c8bc CoreFoundation CFRunLoopRunSpecific + 464
frame #31: 0x00000001b0e4c994 Foundation
- [NSRunLoop(NSRunLoop) runMode: beforeDate:] + 228 frame # 32: 0x00000001c497b214 SceneKit __71-[SCNView(SCNDisplayLink) _initializeDisplayLinkWithCompletionHandler:]_block_invoke + 456
frame #33: 0x00000001c497b45c SceneKit
__ SCNRenderThread_start + 96 frame # 34: 0x00000001b08b11ec libsystem_pthread.dylib`_pthread_start + 124