我是新的雪碧套件,目前正在开发我的第一个游戏。现在我想添加一些背景音乐(也许以后一些效果),并尝试用这段代码:
func playBackgroundMusic() {
// 1 - Create player
let url = Bundle.main.url(forResource: "mySong", withExtension: "mp3")!
let player = try! AVAudioPlayer(contentsOf: url)
// 2 - Play sound
player.play()
}
字符串
但由于某种原因,它不工作。我注意到,当我播放音乐,然后运行游戏,音乐停止,但我听不到我的游戏音乐。
2条答案
按热度按时间tnkciper1#
player
变量是playBackgroundPlayer
函数的局部变量。当你开始播放音乐时,函数退出。当函数退出时,player
不再存在。这可以解释为什么音乐停止。修复方法是将AVAudioPlayer的属性添加到包含
playBackgroundPlayer
函数的类或结构中。在初始化类或结构时创建AVAudioPlayer示例。在playBackgroundPlayer
内部调用play
函数。wj8zmpe12#
您也可以尝试使用SKAction播放音乐:
https://developer.apple.com/documentation/spritekit/skaction/1417664-playsoundfilenamed
它工作,但它是一个小错误的时刻。较大的MP3文件似乎崩溃的游戏或应用程序。
我一直在使用一个AVPlayer单体作为背景音乐(2023年12月),只是因为它更可靠。
然而,AVPlayer无法与iTunes或Apple Music同时工作,因此理想情况下,SKAction是SpriteKit未来版本的首选方法。