gpt4 book ai didi

ios - Swift 单例 SpriteKit

转载 作者:行者123 更新时间:2023-11-29 01:55:13 24 4
gpt4 key购买 nike

我为我的音乐使用了一个单独的 swift 文件,它看起来像这样

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()
}

我可以通过编写 pauseMenuMusic() 在项目的任何地方调用它的函数,比如 GameScene.swift

现在我看到有人用单例方式来做,所以它看起来像这样

    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()。

谁能告诉我首选方式是什么以及究竟有什么区别。非常感谢

最佳答案

万一有人有这个问题,我只是最终使用了一个普通的类“AudioPlayers”,而不是使用静态属性和类 func 来播放、停止等音乐,而不是使用单例。

关于ios - Swift 单例 SpriteKit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30944306/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com