SKAudioNode是否有一个isPlaying()等效项?

时间:2019-06-19 14:52:43

标签: ios sprite-kit avfoundation soundeffect skaudionode

在确定SKAction.playSoundFileNamed不仅有故障和漏气之外,我还尝试了其他游戏的音效选项,而且特别是在IAP中断期间造成崩溃(Apple,不正常)。我们正在尝试使用SKAudioNodes,但是问题是我们有重叠的声音效果。我们想使用一个系统,其中我们有一个SKAudioNodes队列,它们具有相同的效果:例如audioNode1,audioNode2,audioNode3都带有声音“ fxmatch”,并且如果audioNode1.isPlaying(),则我们将在队列中继续前进到audioNode2,然后是audioNode3,等等。对于AVAudioPlayer,我们已经有类似的语法,我们在其中检查isPlaying( )。 SKAudioNodes是否有等效的方法?

1 个答案:

答案 0 :(得分:1)

if let playerNode = audioNode.avAudioNode as? AVAudioPlayerNode{
    print(playerNode.isPlaying)
}

extension SKAudioNode
{
    var isPlaying : Bool { return (avAudioNode as? AVAudioPlayerNode)?.isPlaying ?? false }
}

...

print(audioNode.isPlaying)