为什么AVAudioPlayer播放mp3时总会停在 prepareToPlay这个方法上?

昨天用avaudioplayer做播放音乐的功能,mp3是从服务器下载到本地再从本地读取数据,代码如下:

 -(void)initMusicPlayerWithMusicName:(NSString *)musicName{

        NSError *err;
        NSData *musicData = [NSData dataWithContentsOfFile:[Util localUrlOfMusic:musicName]];
        MYLog(@"data:%@",musicData);
        _musicPlayer = [[AVAudioPlayer alloc]initWithData:musicData error:&err];
        if(err){
            MYLog(@"err:%@",err);
        }
        _musicPlayer.delegate = self;
        _musicPlayer.volume = 1;
        _musicPlayer.numberOfLoops = 1;
        [_musicPlayer prepareToPlay] ;

}

但是当开始播放后,程序总会跳到[_musicPlayer prepareToPlay] ;这一句,并停下,我没有打断点,程序也不是奔溃,点击几次继续运行程序后又可以继续运行,但是会播放两次mp3.请问这是怎么回事?
play方法如下:

 -(void)play:(SongModel *)model tag:(NSInteger)tag{
    _selectedCellIndex = tag;
    NSString *musicName = [Util musicNameFromMusicPath:model.Paths];
    [self initMusicPlayerWithMusicName:musicName];
    [self initTimer];
    [_musicPlayer play];
}

图片说明

ios

2个回答

为何要这句,play就可以了啊

播放音乐会有一段空白,就是准备时间。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问