Приложение вылетает при воспроизведении аудио на iOS13.1 - PullRequest
1 голос
/ 25 сентября 2019

Я создаю приложение, которое запускает звуковые файлы из основного комплекта с URL-адресом.Когда я тестировал это на iOS 13, все в порядке.Но с новым обновлением 13.1 я получаю сообщение об ошибке здесь в строке кода

backgroundMusicPlayer = попробуйте AVAudioPlayer (contentsOf: URL (fileURLWithPath: sound!))

с надписью:

Тема 1: EXC_BAD_ACCESS (код = 1, адрес = 0x48

Вот код, который я использую в пользовательском классе, который запускает фоновую музыкукогда приложение запускается:

import Foundation
import AVFoundation

var backgroundMusicPlayer = AVAudioPlayer()

func playBackgroundMusic(filename: String){

let  sound = Bundle.main.path(forResource: filename, ofType: "m4a")


do{
    try     
AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playback, mode: AVAudioSession.Mode.default, options: [AVAudioSession.CategoryOptions.mixWithOthers])

    backgroundMusicPlayer = try AVAudioPlayer(contentsOf: URL(fileURLWithPath: sound!))

}catch{
    print (error)
}
backgroundMusicPlayer.numberOfLoops = -1
backgroundMusicPlayer.prepareToPlay()
backgroundMusicPlayer.play()

}

Все это прекрасно работает в симуляторе на iOS13, но вылетает на устройстве под управлением 13.1. Похоже, что URL-адрес является проблемой, но я не уверен, почему. Такое же поведениепроисходит на других экранах, где кнопки запускают аудиофайлы из пакета.

1 Ответ

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

Изменить это:

var backgroundMusicPlayer = AVAudioPlayer()

На это:

var backgroundMusicPlayer : AVAudioPlayer!
...