Mam następujący kod do (re) zaczynają AVAudioEngine
przewodowy do AVAudioEngineConfigurationChangeNotification
:Zawieszenie w AVAudioEngine.start(), mimo że jest owinięty DO/połowu
do {
try self.engine.start()
} catch {
DDLogError("could not start sound engine")
self.soundEnabled = false
return
}
self.engine jest zdefiniowany jako
private let engine = AVAudioEngine()
jednak często otrzymują raporty o awariach poprzez Crashlytics mówiąc
krytyczny wyjątek: com.apple.coreaudio. avfaudio błąd 561015905
na linii zawierającej try self.engine.start()
.
561015905 jest AVAudioSessionErrorCodeCannotStartPlaying
iz tego co rozumiem, to powinien być kod NSError
błąd, nie wyjątek, który powinien być złapany przez mojego pustego catch
w kodzie powyżej. Mimo to aplikacja po prostu się zawiesza. czego mi brakuje?
Wiem, że zdarzają się sytuacje, w których aplikacja budzi się w tle, gdzie może wystąpić ten błąd, a ja byłbym w porządku z tym, o ile uda mi się go złapać, jak sądziłem, że mogę z do/catch
.
Otrzymuję podobny błąd. Czy domyśliłeś się, dlaczego tak się dzieje? – Pulsar
Nie. Otworzyłem zgłoszenie błędu w Apple, ale nie otrzymałem jeszcze odpowiedzi. Tymczasem przestałem używać 'AVAudioEngine'. – Mike
@Mike jakieś aktualizacje w tej sprawie? Czy znalazłeś lepszą pracę niż sen()? Czy w ogóle słyszałeś od Apple? Wciąż wygląda na to problem w systemie iOS 11. –