#ios #swift #xcode #avaudioplayer
#iOS #swift #xcode #avaudioplayer
Вопрос:
У меня проблема с моим аудиоплеером. Когда я запускаю свой viewcontroller, он предоставляет nill для URL-адресов, и я понятия не имею, как это возможно.. Я пытался отладить и найти проблему, но я понятия не имею, что происходит.
Вот код:
// VARS AUDIO
var sfxFive: AVAudioPlayer!
var sfxFour: AVAudioPlayer!
var sfxThree: AVAudioPlayer!
var sfxtwo: AVAudioPlayer!
var sfxOne: AVAudioPlayer!
var sfxGo: AVAudioPlayer!
override func viewDidLoad() {
super.viewDidLoad()
do {
let resourcePathFive = Bundle.main.path(forResource: "five", ofType: "m4a")!
let urlFive = URL(fileURLWithPath: resourcePathFive)
try sfxFive = AVAudioPlayer(contentsOf: urlFive)
let resourcePathFour = Bundle.main.path(forResource: "four", ofType: "m4a")!
let urlFour = URL(fileURLWithPath: resourcePathFour)
try sfxFour = AVAudioPlayer(contentsOf: urlFour)
let resourcePathThree = Bundle.main.path(forResource: "three", ofType: "m4a")!
let urlThree = URL(fileURLWithPath: resourcePathThree)
try sfxThree = AVAudioPlayer(contentsOf: urlThree)
let resourcePathTwo = Bundle.main.path(forResource: "two", ofType: "m4a")!
let urlTwo = URL(fileURLWithPath: resourcePathTwo)
try sfxtwo = AVAudioPlayer(contentsOf: urlTwo)
let resourcePathOne = Bundle.main.path(forResource: "one", ofType: "m4a")!
let urlOne = URL(fileURLWithPath: resourcePathOne)
try sfxOne = AVAudioPlayer(contentsOf: urlOne)
let resourcePathGo = Bundle.main.path(forResource: "go", ofType: "m4a")!
let urlGo = URL(fileURLWithPath: resourcePathGo)
try sfxGo = AVAudioPlayer(contentsOf: urlGo )
sfxFive.prepareToPlay()
sfxFour.prepareToPlay()
sfxThree.prepareToPlay()
sfxtwo.prepareToPlay()
sfxOne.prepareToPlay()
sfxGo.prepareToPlay()
} catch let err as NSError {
print(err.debugDescription)
}
}
func timerRunning() {
if timeElapsed == 5 {
sfxFive.play()
}else if timeElapsed == 4 {
sfxFour.play()
}else if timeElapsed == 3 {
sfxThree.play()
}else if timeElapsed == 2 {
sfxtwo.play()
}else if timeElapsed == 1 {
sfxOne.play()
}else if timeElapsed == 0 {
sfxGo.play()
}
}
Аудиофайлы расположены в корневом каталоге.
Кто-нибудь видит проблему?
С уважением, Кевин.
Комментарии:
1. Проверьте этапы сборки вашей цели, если вашего файла m4a нет в списке в группе этапов копирования ресурсов пакета, добавьте его, затем очистите и запустите снова.
2. Под этой картой нет файла m4a
3. Добавьте их в эту группу. Очистите свой проект и запустите снова.
4. @Wolverine попробует сейчас
5. Проверьте свой URL сейчас, если они указывают правильный URL, возможно, вам нужно проверить код, написанный для воспроизведения. При отладке используется точка останова, чтобы получить более четкое представление.
Ответ №1:
Проверьте yourProject -> Target's Build
, что в разделе «Фаза копирования ресурсов пакета», если вашего файла m4a нет в списке, затем добавьте их в эту группу.
Очистите свой проект и запустите снова.