[英]Swift SpriteKit Sound on Node
到目前為止,我發現解決此問題的任何可能性:
我正在嘗試向特定節點添加聲音效果。 將節點從父節點移除后,聲音應停止。 觸摸節點時,聲音也應停止。 我用playSoundFileNamed(“ name”,waitForCompletion:false)嘗試過,但是您無法停止此操作。
AV音頻播放器在后台播放聲音。
如果有人有一些新想法可以嘗試,那就太好了。
簡而言之,您無法停止使用SKAction這樣播放的聲音。 正如您已經提到的,您可以將AVAudioPlayer用於此目的(我不確定將其用於sfx時的性能)。 或者,您可以使用高性能的ObjectAL庫。 SKAction的playSoundFileNamed方法可能用於播放短聲音,但是除了播放聲音之外,您沒有其他控件。 您不能暫停或恢復它或類似操作。 拔下操作鍵也無助於聲音在播放完畢之前停止播放(例如,您無法在中間停止播放聲音)。
您還可以檢查iOS 9.0和更高版本中提供的SKAudioNode 。 有一組SKAction方法可與SKAudioNode一起使用。 我個人沒有嘗試過這些,但是也許值得一看。
希望這可以幫助。
您可以嘗試子類化SKSpriteNode
,您可以根據自己的喜好自定義spriteNode
import SpriteKit class SoundSourceNode: SKNode { let spriteNode = SKSpriteNode(color: UIColor.greenColor(), size: CGSize(width: 20, height: 20)) let audioNode = SKAudioNode(fileNamed: "Boing-One Low.mp3") required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } init(size: CGSize) { spriteNode.position = CGPoint(x: 0, y: 0) audioNode.positional = true audioNode.position = CGPoint(x: 0, y: 0) super.init() self.addChild(spriteNode); self.addChild(audioNode); } }
請注意, SKAudioNode
在iOS9及更高版本中可用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.