[英]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.