在新的iOS版本上,AVAudioPlayer阵列访问错误,但为什么

问题描述 投票:0回答:1

我正在使用以下功能来准备多个音频播放器。

但是在新的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 :( ")
    }
 }
ios swift avaudioplayer
1个回答
0
投票

我在使用上面的函数之前创建了这样的数组。我是这样的]

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"}
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.