当我跟踪问题时,我的应用程序在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
初始化时崩溃。
[我在iOS 13.1的AVAudioPlayer
中发现崩溃问题。
这里是解决方案
为什么我的AVAudioPlayer
崩溃?因为
我像[初始化AVAudioPlayer
var wrongMusicPlayer: AVAudioPlayer = AVAudioPlayer()
然后我尝试如下重新分配wrongMusicPlayer
wrongMusicPlayer = try AVAudioPlayer(contentsOf: wrongURL)
并且我的应用程序崩溃。
解决
如果您以任何方法将AVAudioPlayer
初始化为var wrongMusicPlayer: AVAudioPlayer = AVAudioPlayer()
或wrongMusicPlayer = AVAudioPlayer()
,请删除它,然后像var wrongMusicPlayer: AVAudioPlayer!
一样声明。
由于我在Rakesh的回答中没有评论的要点,因此目标C代码也会发生相同的问题。先前musicPlayer = [[AVAudioPlayer alloc] init];可以,但是现在会导致iOS13崩溃。稍后,当使用其他initWithContentsOfURL等其他init方法之一时,发生崩溃。删除[[AVAudioPlayer alloc] init]可解决此问题。