Приложение вылетает со следующим сообщением об ошибке
2019-10-12 20:01:34.332334-0700 Awesome App[26368:3535170] [plugin] AddInstanceForFactory: No factory registered for id <CFUUID 0x600002903280> F8BB1C28-BAE8-11D6-9C31-00039315CD46
Кажется, что точка останова при сбое связана с AVAudioPlayer
let path = Bundle.main.path(forResource: "menu_background.mp3", ofType:nil)!
audioPlayer = try AwesomeAudioPlayer(contentsOf: URL(fileURLWithPath: path)) ---> breakpoint
Я считаю, что сообщение об ошибке является предупреждением для симуляторов, поэтому оно не важно.
Я думаю, что ваша проблема - ошибка в вашем коде. Должно быть что-то вроде этого:
let path = Bundle.main.path(forResource: "menu_background", ofType:"mp3") audioPlayer = try AwesomeAudioPlayer(contentsOf: URL(fileURLWithPath: path!)) ---> breakpoint
Где forResource - это имя файла, а ofType - это расширение. Вы также можете использовать Bundle.main.url, который будет выглядеть так:
let path = Bundle.main.url(forResource: "menu_background", withExtension:"mp3") audioPlayer = try AwesomeAudioPlayer(contentsOf: URL(fileURLWithPath: path!)) ---> breakpoint
источник
Вы можете использовать do / catch, чтобы избежать сбоя и изучить исключение, или игнорировать проблему вместе с
try?
. Для меня это было только в симуляторе при вызове:try? AVAudioSession.sharedInstance().setCategory(.playback)
Я думаю, что это безопасно игнорировать в моем случае.
источник
Я полагаю, что вы все могли добавить AVFoundation в список фреймворков на вкладке «Общая информация о проекте».
Ошибочный код был следующим:
И после того, как я переместил
var audioPlayer: AVAudioPlayer
декларацию сразу после строки,import AVFoundation
она, казалось, работала.Поэтому следующий код работал для меня в
SwiftUI
проекте.}
Первоначально я следовал этому руководству CodeWithChris, и его обсуждение также привело к изменению выше. Также проверьте следующее руководство, если вам нужны дополнительные примеры.
Надеюсь, что это будет полезно для кого-то из вас там!
Ура!
источник