Aplikacja ulega awarii z następującym komunikatem o błędzie
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
Punkt przerwania w chwili awarii wydaje się być związany z AVAudioPlayer
let path = Bundle.main.path(forResource: "menu_background.mp3", ofType:nil)!
audioPlayer = try AwesomeAudioPlayer(contentsOf: URL(fileURLWithPath: path)) ---> breakpoint
Uważam, że komunikat o błędzie jest ostrzeżeniem dla symulatorów, dlatego nie jest ważny.
Myślę, że twój problem jest błędem w kodzie. Powinno być coś takiego:
let path = Bundle.main.path(forResource: "menu_background", ofType:"mp3") audioPlayer = try AwesomeAudioPlayer(contentsOf: URL(fileURLWithPath: path!)) ---> breakpoint
Gdzie forResource to nazwa pliku, a ofType to rozszerzenie. Możesz także użyć pliku Bundle.main.url, który będzie wyglądał następująco:
let path = Bundle.main.url(forResource: "menu_background", withExtension:"mp3") audioPlayer = try AwesomeAudioPlayer(contentsOf: URL(fileURLWithPath: path!)) ---> breakpoint
źródło
Możesz użyć do / catch, aby uniknąć awarii i zbadać wyjątek, lub zignorować problem razem z
try?
. Dla mnie było to widoczne tylko w symulatorze podczas dzwonienia:try? AVAudioSession.sharedInstance().setCategory(.playback)
Myślę, że w moim przypadku jest to bezpieczne.
źródło
Myślę, że wszyscy mogliście dodać AVFoundation do listy ram w zakładce Informacje ogólne projektu.
Błędny kod był następujący:
Po przeniesieniu
var audioPlayer: AVAudioPlayer
deklaracji na linię tuż poimport AVFoundation
linii wydawało się, że działa.Więc poniższy kod działał dla mnie w
SwiftUI
projekcie.}
Początkowo śledziłem ten samouczek CodeWithChris, a jego dyskusja doprowadziła również do powyższych zmian. Również kasaSprawdź poniższy samouczek, jeśli potrzebujesz dalszych przykładów.
Mam nadzieję, że będzie to pomocne dla kogoś z was!
Twoje zdrowie!
źródło