iOS音频播放

方式一:使用AVAudioPlayer播放音乐

特点:自定制化程度高
注意点:
AVAudioPlayer 需要设置成全局的, 否则会被过早释放,而无法播放

 NSError *error = nil;
    NSString *outPutFilePath = [[NSBundle mainBundle]pathForResource:@"一" ofType:@"mp3"];
    _audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:outPutFilePath] error:&error];
    if (error) {
        NSLog(@"-------%@",error);
    }
    [_audioPlayer play];

方式二: 使用System Sound Services播放简短音频

特点:声音长度不能超过30s, 支持格式较少, 用于播放一些提示音或警告音

//MARK:播放本地音频
- (void)playLocaVoiceClick{
    // 1. 定义要播放的音频文件的URL
    NSURL *voiceURL = [[NSBundle mainBundle]URLForResource:@"unbelievable" withExtension:@"caf"];
    // 2. 注册音频文件(第一个参数是音频文件的URL 第二个参数是音频文件的SystemSoundID)
    AudioServicesCreateSystemSoundID((__bridge CFURLRef)(voiceURL),&ditaVoice);
    // 3. 为crash播放完成绑定回调函数
//    AudioServicesAddSystemSoundCompletion(ditaVoice,NULL,NULL,(void*)completionCallback,NULL);
//    AudioServicesAddSystemSoundCompletion(ditaVoice, NULL, NULL, NULL, NULL);
    // 4. 播放 ditaVoice 注册的音频 并控制手机震动
//    AudioServicesPlayAlertSound(ditaVoice);
    //    AudioServicesPlaySystemSound(ditaVoice);
    //    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); // 控制手机振动
    
AudioServicesPlayAlertSoundWithCompletion(ditaVoice,^{AudioServicesDisposeSystemSoundID(ditaVoice);
    
    NSLog(@"播放完成");
    
});
    
}

方式三: MPMusicPlayerController

转自: https://www.zybuluo.com/kezhen/note/136614

你可能感兴趣的:(iOS音频播放)