繁体   English   中英

如何在 ARKit 中暂停 SCNAudioPlayer 播放?

[英]How can I pause SCNAudioPlayer playback in ARKit?

我正在尝试为附加到 ARKit 场景中节点的位置音频实现播放/暂停按钮。 我希望用户能够暂停音频,然后稍后从暂停点恢复。 所以removeAudioPlayer()不好,因为这会在重新附加音频时将音频重置为开始。

我能找到的唯一与 SCNAudioPlayers 相关的暂停方法深埋在:

myAudioPlayer.audioNode?.engine?.pause()

但这似乎没有任何效果。 奇怪的是

myAudioPlayer.audioNode?.engine?.stop()

确实停止播放音频,但之后您无法再次启动它!

我创建 audioPlayer 的代码如下:

audioSource = SCNAudioSource(fileNamed: "audio.caf")!
audioSource.loops = false
audioSource.isPositional = true
audioSource.shouldStream = false
audioSource.load()
// then a bit later...
audioPlayer = SCNAudioPlayer(source: audioSource)
myARNode.addAudioPlayer(audioPlayer)

请注意,不需要“播放”方法。 只要将音频附加到节点,音频就会开始播放。 并且缺少直接的 play() 和 pause() 方法作为 SCNAudioPlayer 的顶级属性,这让我想知道这是否可能。 然而,这似乎有点疯狂,因为这是处理音频的一个非常基本的方面。

有谁知道这是否可以做到?

提前致谢。

要停止音频引擎,请使用 2 秒延迟。 暂停在这里不起作用(我使用的是 Xcode 12.2)。

DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) {
    player.audioNode?.engine?.stop()
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM