在升级到XCode 7.2之后,我遇到了一个问题: SKAudioNode只播放了一秒钟,然后就停止播放了。我没有更改代码中的任何内容。
在我的GameViewController中,我这样调用MenuScene:
class GameViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let scene = MenuScene(size: view.bounds.size)
let skView = view as! SKView
skView.showsFPS = true
skView.showsNodeCount = true
skView.ignoresSiblingOrder = true
scene.scaleMode = .ResizeFill
skView.presentScene(scene)
}...在我的MenuScene中,我这样命名我的GameScene:
func launchScene() {
let gameView = view! as SKView
let gameScene = GameScene(size: self.size)
gameView.ignoresSiblingOrder = true
let reveal = SKTransition.fadeWithDuration(0.5)
gameView.presentScene(gameScene, transition:reveal)
}然后在我的GameScene中添加一个SKAudioNode:
class GameScene: SKScene, SKPhysicsContactDelegate {
override func didMoveToView(view: SKView) {
...
let backgroundMusic = SKAudioNode(fileNamed: "main.mp3")
backgroundMusic.autoplayLooped = true
addChild(backgroundMusic)
...
}
}所以,问题是,当我点击一个调用launchScene()函数的按钮时,背景音乐开始播放,但大约1秒后停止播放。
编辑:看起来backgroundMusic已经开始播放了!转换到另一个场景开始,当另一个场景(gameScene)“终于在那里”(不知道如何描述它)时,音乐停止播放。我不知道为什么,因为我在"didMoveToView“函数的gameScene中添加了backgroundMusic。
既然它在XCode 7.1中完美地工作,我在这里做错了什么?
发布于 2015-12-18 04:28:28
在我的场景过渡项目中,添加0.1秒的声音延迟似乎已经解决了这个问题。比如
runAction(SKAction.waitForDuration(0.1), completion: {
self.backgroundMusic = SKAudioNode(fileNamed: "main.mp3")
self.backgroundMusic.autoplayLooped = true
self.addChild(self.backgroundMusic)
})https://stackoverflow.com/questions/34250100
复制相似问题