iOS之音乐播放

功能介绍

  用于播放比较长的音频、说明、音乐
  它使用的是AVFoundation框架

使用步骤

(0)导入AVFoundation框架
(1)资源文件路径 (为下一步初始化播放器做准备)
(2)初始化播放器
(3)设置播放器的各种属性(根据项目需求设置属性)
(4)预播放
(5)播放

初始化播放器的时候注意:

      1)必须声明全局变量、属性的音乐播放对象 才可以播放
      2)在退出播放页面的时候一定要把播放对象置空 同时把delegate置空

实例说明

//1、导入框架
#import 

    //声明一个error对象 如果有错误系统会赋值给error 
      NSError *error;
    //2、初始化播放器 资源路径直接写在代码里了
    audioPlayer = [[AVAudioPlayer alloc]initWithContentsOfURL:[[NSBundle mainBundle] URLForResource:@"笔墨稠.mp3" withExtension:nil] error:&error];
    //如果有错误 打印错误
    if (error) {
        NSLog(@"%@",error);
    }
    //4、预播放
    [audioPlayer prepareToPlay];
    //5、播放
     [audioPlayer play];

以上代码就可以简单的播放一段音乐了,但细心的肯定发现了,第三步设置属性去哪儿了,下面咱们就具体说一下播放器包含的属性

 //获得当前音乐的声道
    NSLog(@"%lu",(unsigned long)audioPlayer.numberOfChannels);
    
    //设置声道 -1.0左 0.0中间 1.0右面
     audioPlayer.pan = -1.0;
     
    //设置音量 默认是1.0 值在0.0到1.0之间
    audioPlayer.volume = 1.0;
    
    //获得速率 必须设置enableRate为YES
    audioPlayer.enableRate = YES;
    //设置速率0.5是一半的速度 1.0普通 2.0 双倍速度
    audioPlayer.rate =0.5;
    
    //获得峰值必须设置meteringEnabled为YES
    audioPlayer.meteringEnabled = YES;
    //更新峰值
    [audioPlayer updateMeters];
    //获得当前峰值
    NSLog(@"当前峰值:%f",[audioPlayer peakPowerForChannel:2]);
    //获得平均峰值
    NSLog(@"平均峰值:%f",[audioPlayer averagePowerForChannel:2]);
    
    //设置播放次数  负数是无限循环 0是一次 1是两次······
    audioPlayer.numberOfLoops = 1;
    
    //audioPlayer.currentTime可以获得音乐播放的当前时间
    // audioPlayer.duration可以获得音乐播放的总时间

除此之外,它还有一些代理方法,不过用代理方法之前别忘先导入代理并且挂上代理

 - (void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer *)player error:(NSError * __nullable)error{
 NSLog(@"解码出现错误的时候调用");
}

- (void)audioPlayerBeginInterruption:(AVAudioPlayer *)player{
NSLog(@"被打扰开始中断的时候调用比如突然来电话了");
}
- (void)audioPlayerEndInterruption:(AVAudioPlayer *)player withOptions:(NSUInteger)flags{
NSLog(@"中断结束的时候调用");
}

有兴趣的朋友也可以把音乐播放器封装一个方法或是一个小类 用的时候直接调用封装的方法就可以就可以

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