Я хочу иметь фоновую музыку в своей игре, которая закодирована в Swift 3. Я пробовал много учебников и примеров кода, но я не могу найти реализацию, которая работает в моем коде 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 < +760>: movq 0x69a9 (% rip),% rcx; прямое смещение поля для TabTab.ViewController (backgroundMusic.storage в _98A37426C9C75C234890E1E239802C1D):. Swift.Optional>
И когда вы используете отладчик, чтобы выполнить свой код, вы нашли .....? –
Пожалуйста, не игнорируйте ошибку, которую вы кэшировали. По крайней мере, запишите его. –
Когда я использую отладчик в записи функции, я получаю следующее: –