0
我用我的音乐单独的迅速文件,它看起来像这样斯威夫特辛格尔顿SpriteKit
import AVFoundation
var menuMusic = AVAudioPlayer()
// Menu Music
func playMenuMusic() {
var menuMusicURL = NSBundle.mainBundle().URLForResource("MenuBackground", withExtension: "mp3")
menuMusic = AVAudioPlayer(contentsOfURL: menuMusicURL, error: nil)
menuMusic.numberOfLoops = -1
menuMusic.prepareToPlay()
menuMusic.play()
}
// Pause
func pauseMenuMusic() {
menuMusic.pause()
}
我可以在任何地方调用它的功能在我的项目,像GameScene.swift,通过写pauseMenuMusic()
现在我看到人们这样做的单方式,以便它看起来像这样
import AVFoundation
class Audio: NSObject {
var menuMusic = AVAudioPlayer()
static let shareInstance = Audio() // with swift 1.2 no need for struct and class var anymore
// Play Menu Music
func playMenuMusic() {
var menuMusicURL = NSBundle.mainBundle().URLForResource("MenuBackground", withExtension: "mp3")
menuMusic = AVAudioPlayer(contentsOfURL: menuMusicURL, error: nil)
menuMusic.numberOfLoops = -1
menuMusic.prepareToPlay()
menuMusic.play()
}
// Pause
func pauseMenuMusic() {
menuMusic.pause()
}
到现在从任何地方它调用一个函数将Audio.shareInstance.pauseMenuMusic()。
有人能让我知道最好的方式是什么,以及究竟有什么不同。非常感谢你