Сбой iOS 13.1 в AVAudio Player - PullRequest
       22

Сбой iOS 13.1 в AVAudio Player

7 голосов
/ 26 сентября 2019

Мое приложение падает на iOS 13.1, когда я отслеживаю проблему, а затем обнаружил, что приложение падает из-за AVAudioPlayer.

Ниже приведены настройки моего проигрывателя.

if let wrongURL = Bundle.main.url(forResource: "wrongAudio", withExtension: "mp3")
        {
            do {
                wrongMusicPlayer = try AVAudioPlayer(contentsOf: wrongURL)
                wrongMusicPlayer.prepareToPlay()
            }
            catch
            {
                print(error.localizedDescription)
            }
        }

Здесь всенайден правильно, но сбой при AVAudioPlayer попытке инициализации с URL.

Ответы [ 2 ]

12 голосов
/ 26 сентября 2019

Я обнаружил проблему сбоя в AVAudioPlayer с iOS 13.1.

Вот решение

Почему произошел сбой My AVAudioPlayer?потому что

Я инициализирую AVAudioPlayer как

var wrongMusicPlayer: AVAudioPlayer = AVAudioPlayer()

, а затем я пытаюсь переназначить wrongMusicPlayer как показано ниже

wrongMusicPlayer = try AVAudioPlayer(contentsOf: wrongURL)

И мое приложение аварийно завершает работу.

Решение

Если вы инициализируете ваш AVAudioPlayer как var wrongMusicPlayer: AVAudioPlayer = AVAudioPlayer() ИЛИ wrongMusicPlayer = AVAudioPlayer() любым способом, удалите его и просто объявите как var wrongMusicPlayer: AVAudioPlayer!.

0 голосов
/ 30 сентября 2019

Поскольку у меня нет точек для комментариев в ответе Ракеша, то же самое происходит с кодом Objective C.Ранее
musicPlayer = [[AVAudioPlayer alloc] init];будет работать, но теперь вызовет сбой в iOS13.Сбой происходит позже при использовании одного из других методов инициализации, таких как initWithContentsOfURL.Удаление [[AVAudioPlayer alloc] init] устраняет проблему.

...