我正在使用以下功能来准备多个音频播放器。
但是在新的iOS版本上运行代码时,我从行中得到线程1:EXC_BAD_ACCESS(code = 1,address = 0x48)玩家[i] =玩家
它仍然可以在旧的iOS版本上运行,没有问题。
func loadMusicToAPlayer(i: Int, name: String){
let s = Bundle.main.path(forResource: name, ofType:nil)!
let url = URL(fileURLWithPath: s )
do {
let player = try AVAudioPlayer(contentsOf: url)
players[i] = player
players[i].prepareToPlay()
players[i].isMeteringEnabled = true
} catch {
print("couldn't load music file :( ")
}
}
我在使用上面的函数之前创建了这样的数组。我是这样的]
for k in 0..< audioList.count {
players.append(AVAudioPlayer())
}
因为有时我要更改的名称播放器的音频。为了轻松实现,我分离了音频加载功能。
现在,我正在创建像这样的播放器数组。并在相关功能的修订版中更改了音频名称。
func loadAudio(name: [String]){
for k in 0..< name.count {
let s = Bundle.main.path(forResource: name[k], ofType:nil)!
let url = URL(fileURLWithPath: s )
do {
let player = try AVAudioPlayer(contentsOf: url)
players.append(player)
} catch { print("could not load audio file"}
}
}