因此,我一直试图让这个音频文件播放游戏的所有场景,但它切断后,MenuScene。我叫MenuScene从GameViewController
class GameViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
if let view = self.view as! SKView? {
// Load the SKScene from 'MenuScene.sks'
if let scene = SKScene(fileNamed: "MenuScene") {
// Set the scale mode to scale to fit the window然后,在MenuScene中,我以这样的方式开始音乐。
class MenuScene: SKScene {
var starfield:SKEmitterNode!
var newGameButtonNode:SKSpriteNode!
var difficultyButtonNode:SKSpriteNode!
var difficultyLabelNode:SKLabelNode!
var backgroundMusic:SKAudioNode!
override func didMove(to view: SKView) {
let backgroundMusic = SKAudioNode(fileNamed: "Snap.mp3")
backgroundMusic.autoplayLooped = true
addChild(backgroundMusic)音乐开始播放了。然后,我在touchesBegan ()中,如果GameScene按钮被触摸,它将加载该场景。我进行了很长时间的转换,以了解音乐何时停止并在整个转换过程中播放,但是当加载GameScene时,它就停止了。
if nodesArray.first?.name == "newGameButton" {
let transition = SKTransition.fade(withDuration: 5.0)
run(SKAction.wait(forDuration: 5.0), completion: {
self.backgroundMusic = SKAudioNode(fileNamed: "Snap.mp3")
self.backgroundMusic.autoplayLooped = true
self.addChild(self.backgroundMusic)
})
let gameScene = GameScene(size: self.size)
self.view!.presentScene(gameScene, transition: transition)我希望它继续玩整个游戏和在GameOver现场和循环永远。
发布于 2017-02-13 16:55:30
确保您在主SKScene和
你可以这样做:
self.runAction(SKAction.playSoundFileNamed("YourFileName.extension", waitForCompletion: false))重复音乐:
SKAction.repeatForever(SKAction.playSoundFileNamed("YourFileName.extension", waitForCompletion: true))你的音乐会继续播放..。
用AVFoundation
我做过的代码之一。
import AVFoundation
var backgroundMusicPlayer: AVAudioPlayer!
func playBackgroundMusic(filename: String) {
let url = NSBundle.mainBundle().URLForResource(
filename, withExtension: nil)
if (url == nil) {
print("Could not find file: \(filename)")
return
}
var error: NSError? = nil
backgroundMusicPlayer =
AVAudioPlayer(contentsOfURL: url, error: &error)
if backgroundMusicPlayer == nil {
print("Could not create audio player: \(error!)")
return
}
backgroundMusicPlayer.numberOfLoops = -1
backgroundMusicPlayer.prepareToPlay()
backgroundMusicPlayer.play()
}
import SpriteKithttps://stackoverflow.com/questions/42208347
复制相似问题