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

为什么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];
}

【热门文章】
【热门文章】