我想在我的游戏中有背景音乐,它是用Swift 3编码的。我尝试了很多教程和示例代码,但是我找不到一个在我的Swift 3代码中工作的实现。我能找到的最好的示例代码是:
lazy var backgroundMusic: AVAudioPlayer? = {
guard let url = Bundle.main.url(forResource: "Music Title", withExtension: "mp3") else {
return nil
}
do {
let player = try AVAudioPlayer(contentsOf: url)
player.numberOfLoops = -1
return player
} catch {
return nil
}
}
override func viewDidLoad() {
super.viewDidLoad()
backgroundMusic?.play()
}我已经将音乐文件放在一个名为"Resources“的单独文件夹中。如果你能帮我,我会很高兴的!
我用下划线更改了文件名中的空格,但问题仍然存在。顺便说一句,当我遵循Xcode的翻译提示时,我得到了以下代码:
lazy var backgroundMusic: AVAudioPlayer? = {
guard let url = Bundle.main.url(forResource: "Mining by Moonlight", withExtension: "mp3") else {
return nil
}
do {
let player = try AVAudioPlayer(contentsOf: url)
player.numberOfLoops = -1
return player
} catch {
return nil
}
}()
override func viewDidLoad() {
super.viewDidLoad()
backgroundMusic?.play()
}在lazy var backgroundMusic设置断点并进入代码之后,我从调试器获得以下结果:
0x1029097d8 TabTab.ViewController.(backgroundMusic.storage:<+760>:movq0x69a9(%rip),%rcx;_98A37426C9C75C234890E1E239802C1D中的_98A37426C9C75C234890E1E239802C1D的直接字段偏移):Swift.Optional>
发布于 2017-10-16 06:26:43
迅捷3
class MusicHelper {
static let sharedHelper = MusicHelper()
var audioPlayer: AVAudioPlayer?
func playBackgroundMusic() {
let aSound = NSURL(fileURLWithPath: Bundle.main.path(forResource: "mario", ofType: "mp3")!)
print(aSound)
do {
audioPlayer = try AVAudioPlayer(contentsOf:aSound as URL)
audioPlayer!.numberOfLoops = -1
audioPlayer!.prepareToPlay()
audioPlayer!.play()
} catch {
print("Cannot play the file")
}
}}
并将其添加到MusicHelper.sharedHelper.playBackgroundMusic() viewdidLoad中。
发布于 2019-06-24 06:31:31
解决了ALHAMDULELLAH仅在Xcode设置中更改的问题[
https://stackoverflow.com/questions/40226831
复制相似问题