ios - AVAudioPlayer 在 iOS 13 上崩溃

标签 ios swift

我使用此代码来播放音频:

let url = Bundle.main.url(forResource: "0", withExtension: "mp3")!

            do {

                audioPlayer = try AVAudioPlayer(contentsOf: url)
                audioPlayer.delegate = self
                audioPlayer.prepareToPlay()
                play(sender:AnyObject.self as AnyObject)

            } catch {
            }

在我的 iPhone X 和 iPhone 7 Plus 上的 iOS 12.4.1 上,此代码运行良好。但在 iOS 13 及更高版本上,我的应用程序在此行崩溃 audioPlayer = try AVAudioPlayer(contentsOf: url) 并出现错误 Thread 1: EXC_BAD_ACCESS (code=1, address=0x48) 。但在我的模拟器 iPhone 11 Pro Max 和 iOS 13 上一切正常。为什么会发生这种情况以及如何解决?

最佳答案

我也遇到了这个错误,你可能像这样实例化你的audioPlayer:

let audioPlayer = AVAudioPlayer ()

尝试创建一个可选:

let audioPlayer: AVAudioPlayer?

并在 viewDidLoad() 中完成代码:

let path = Bundle.main.path (forResource: "0", ofType: "mp3")!
let url = URL(fileURLWithPath: path)
do {
   audioPlayer = try AVAudioPlayer(contentsOf: url)
} catch{
}

关于ios - AVAudioPlayer 在 iOS 13 上崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58144735/

相关文章:

ios - 无法删除 subview Controller

ios - swift 4,使用 UIActivityViewController 将图像分享到 facebook 和其他应用程序崩溃

swift - Swift-在MKCircle中设置多个fillColor

ios - 尝试使用 Parse 显示查询的用户信息

javascript - iOS 上网页的 div 数量或内存限制?

ios - 选择文本和更改属性错误?

ios - UILabel 的 TextAlignment

swift - 为什么我不能将隐式解包的可选项作为 UnsafeMutablePointer 传递?

ios - 为什么不调用 deinit?

swift - CoreData - 从 tableView 中删除行