- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我看到的是SceneKit中的崩溃,这是我在iOS 13.1.2之前没有看到的。
我已将问题追查到以下功能,无法完全推测出导致问题的原因。
如果我注释掉在节点上运行操作的行,一切就很好。
我可以在场景中其他先前存在的节点上运行playAudio Action ,但是当我只想使用以下功能一次播放一次声音时,该应用就会崩溃。
所以我的想法是,这可能与我实例化该节点的方式有关,但是我无法想到另一种实例化节点的方法,该方法只是在给定位置播放声音。
我也尝试过使用回收的音频源,但这没什么区别。
可能有人对这个代码可能导致崩溃的情况有任何想法吗?这对我来说并不明显,尤其是因为它在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))
}
}
objc_retain + 16
frame #1: 0x00000001bd5a90c4 AVFAudio
-[AVAudioPlayerNode didAttachToEngine:] + 140AVAudioEngineImpl::AttachNode(AVAudioNode*, bool) + 272
frame #3: 0x00000001bd5b2324 AVFAudio
-[AVAudioEngine attachNode:] + 80CPP3DAudioContext::AddVoice(void const*) + 120
frame #5: 0x00000001c4aeacf0 SceneKit
CPP3DAudioEngine::AddVoice(void const *)+ 192C3DNodeAddAudioPlayer + 40
frame #7: 0x00000001c4a07924 SceneKit
-[SCNNode addAudioPlayer:] + 132SCNCPlaySound::cpp_updateWithTargetForTime(SCNNode*, double) + 96
frame #9: 0x00000001c499c690 SceneKit
SCNActionApply + 112_applyActions + 236
frame #11: 0x00000001b0a8e1b8 CoreFoundation
-[ NSFrozenDictionaryM __apply:context:] + 128C3DAnimationManagerApplyActions + 104
frame #13: 0x00000001c4a173e4 SceneKit
-[SCNRenderer _update:] + 576-[SCNRenderer _drawSceneWithNewRenderer:] + 200
frame #15: 0x00000001c4a19fbc SceneKit
-[SCNRenderer _drawScene:] + 48-[SCNRenderer _drawAtTime:] + 616
frame #17: 0x00000001c4ab46b8 SceneKit
-[SCNView _drawAtTime:] + 428__69-[NSObject(SCN_DisplayLinkExtensions) SCN_setupDisplayLinkWithQueue:]_block_invoke + 56
frame #19: 0x00000001c4a7fe48 SceneKit
__36- [SCNDisplayLink _callbackWithTime:] _ block_invoke + 64_dispatch_client_callout + 16
frame #21: 0x0000000105735888 libdispatch.dylib
_dispatch_lane_barrier_sync_invoke_and_complete + 124-[SCNDisplayLink _callbackWithTime:] + 232
frame #23: 0x00000001058f95f8 GPUToolsCore
-[DYDisplayLinkInterposer forwardDisplayLinkCallback:] + 168CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) + 632
frame #25: 0x00000001b1acdeb0 IOKit
IODispatchCalloutFromCFMessage + 488__CFMachPortPerform + 172
frame #27: 0x00000001b0b12e5c CoreFoundation
__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION + 56__CFRunLoopDoSource1 + 444
frame #29: 0x00000001b0b0d45c CoreFoundation
CFRunLoopRun + 2168CFRunLoopRunSpecific + 464
frame #31: 0x00000001b0e4c994 Foundation
-[NSRunLoop(NSRunLoop)runMode:beforeDate:] + 228__71-[SCNView(SCNDisplayLink) _initializeDisplayLinkWithCompletionHandler:]_block_invoke + 456
frame #33: 0x00000001c497b45c SceneKit
__SCNRenderThread_start + 96最佳答案
我只是想更新我的问题,说这个问题在更新到iOS 13.2后已经解决了。 -谢谢苹果。 :)
关于ios - SCNAction playAudio似乎导致崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58457427/
我知道这是基本的。 我只是想知道什么是优雅的方法。 例如: 我想要此列表中的“python01.wav”和“py*thon”字符串 列表如下: [ [('name', 'entry')], [('cl
我们将崩溃的原因确定为在我们的游戏中使用 SCNAction.playAudio 的声明。如果在我们的游戏中调用了任何 playAudio 语句,则 SCNScene/SCNView 的取消初始化稍后
我发现这段代码可以在点击时播放音频文件,但它只允许播放一个音频文件。现在,我试图重写代码,但它不起作用,我找不到问题所在。我是 JavaScript 的新手,所以如果您有更好的解决方案,请告诉我。 为
我需要在Octave上播放wav文件。当我调用playaudio(“sample”,“wav”)函数时。我收到此错误: 错误:playaudio不支持给定的扩展名 错误:来自: 错误:第70行第7列的
在我的应用程序中,我对鼠标点击给出了声音响应。我是这样做的 我是这样调用函数的 这是函数 function callplay() {
我现在被阻止了几个小时,我正在尝试使用 xml onClick 属性处理 ListView 内的按钮单击。 这是我的 result.xml: 这是我的 search.java
我正在尝试在我的应用程序中创建一个 MP3 播放器,但是当我使用文件浏览器选择 MP3,然后使用我的应用程序打开它时 - 由于线路上出现空指针异常,我收到强制关闭错误: playAudio(extra
我是一名优秀的程序员,十分优秀!