우선 내가 도움을 청할 사람에게 감사드립니다.Swift 2 Spritekit : 게임이 일시 중지 상태 일 때 배경 음악이 재개되지 않는 문제
저는 인터넷을 통해 광범위하게 검색했으며 내 문제에 대한 해결책을 찾을 수 없습니다. 내 문제는 SpriteKit 프레임 워크를 사용하여 구축중인 iOS 게임입니다. SKAudioNode를 사용하여 배경 음악을 추가했으며 처음에는 잘 작동하지만 몇 초 이내에 게임을 일시 중지하고 재생하면 음악이 다시 재생되기 시작하지 않습니다. 게임을 일시 중지 할 때 SKAudioNode를 제거하고 게임을 다시 시작할 때 SKAudioNode를 제거하는 등의 많은 작업을 시도했지만 아무 것도 작동하지 않았습니다. 나는 가능한 한 관련 유지 아래 내 코드의 조각을 게시 한 :
class GameScene: SKScene, SKPhysicsContactDelegate {
var backgroundMusic = SKAudioNode(fileNamed: "bg.mp3")
let pauseImage = SKTexture(imageNamed: "pause.png")
var pauseButton:SKSpriteNode!
let playImage = SKTexture(imageNamed: "play2.png")
var playButton:SKSpriteNode!
override func didMoveToView(view: SKView) {
self.addChild(backgroundMusic)
// create pause button
pauseButton = SKSpriteNode(texture: pauseImage)
pauseButton.position = CGPoint(x: self.size.width - pauseButton.size.width, y: pauseButton.size.height)
pauseButton.zPosition = 1
pauseButton.name = "pauseButton"
self.addChild(pauseButton)
// create play button
playButton = SKSpriteNode(texture: playImage)
playButton.position = CGPoint(x: self.size.width - playButton.size.width, y: -playButton.size.height)
playButton.zPosition = 1
playButton.name = "playButton"
self.addChild(playButton)
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
for touch in touches {
if pauseButton.containsPoint(touch.locationInNode(self)) {
let blockOne = SKAction.runBlock({
self.pauseButton.position.y = - self.pauseButton.size.height
self.playButton.position.y = self.playButton.size.height
})
let blockTwo = SKAction.runBlock({
self.view?.paused = true
})
self.runAction(SKAction.sequence([blockOne, blockTwo]))
}
else if(playButton.containsPoint(touch.locationInNode(self))) {
self.playButton.position.y = -self.playButton.size.height
self.pauseButton.position.y = self.pauseButton.size.height
self.view?.paused = false
}
}
}
}
당신은 게임의 주위에 데이터를 전달하기 위해 AVAudioPlayer 및 NSNotificationCenter를 사용하여 보길 원하는 것
Corey는 배경 음악에 대한 AVPlayer를 제안했을 수 있습니다. 나는 SKAudioNodes에 관한 문제 만 가지고있다. 그들은 일시 정지/다시 시작하지 않으며, 필요할 때까지 사운드를 내지 않으며 항상 깨지기 때문에 소리를 내고 1 초 사운드를 재생합니다. – crashoverride777