AVAudioPlayer是系统提供给咱们的一个音频播放类,在AVFoundation框架下,经过它,咱们能够实现一个功能强大的音乐播放器。首先,在项目中咱们须要导入AVFoundation这个框架。框架
初始化方法有两种,经过音频的路径或者音频data数据初始化player对象函数
- (instancetype)initWithContentsOfURL:(NSURL *)url error:(NSError **)outError; - (instancetype)initWithData:(NSData *)data error:(NSError **)outError;
注意:支持的音频格式有:AAC,ALAC,HE-AAC,iLBC,IMA4,MP3.oop
准备播放音频,返回值标志是否解析成功,是否能够播放。学习
- (BOOL)prepareToPlay;
开始播放音频url
- (BOOL)play;
在一段时间间隔后播放spa
- (BOOL)playAtTime:(NSTimeInterval)time;
暂停播放,而且准备好继续播放code
- (void)pause;
中止播放,再也不准备好继续播放对象
- (void)stop;
获取是否正在播放开发
@property(readonly, getter=isPlaying) BOOL playing;
获取当前音频声道数get
@property(readonly) NSUInteger numberOfChannels;
获取当前音频时长
@property(readonly) NSTimeInterval duration;
获取建立时的音频路径
@property(readonly) NSURL *url;
获取建立时的音频数据
@property(readonly) NSData *data;
设置声道偏移量,0为中心,-1为只有左声道,1为只有右声道
@property float pan;
设置音频音量,取值为0-1之间
@property float volume;
设置是否能够改变播放速度
@property BOOL enableRate;
注意:设置这个属性前必须先调用prepareToPlay这个方法。
设置播放速度,1为正常,0.5为一半速度,2.0为2倍速度
@property float rate;
设置当前播放的时间点
@property NSTimeInterval currentTime;
设置音频播放循环次数
@property NSInteger numberOfLoops;
获取音频设置字典
@property(readonly) NSDictionary *settings;
是否开启仪表计数功能
@property(getter=isMeteringEnabled) BOOL meteringEnabled;
更新仪表计数的值
- (void)updateMeters;
获取指定声道音频峰值
- (float)peakPowerForChannel:(NSUInteger)channelNumber;
获取指定声道音频平均值
- (float)averagePowerForChannel:(NSUInteger)channelNumber;
音频播放结束后调用的函数
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag;
播放遇到错误时调用的函数
- (void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer *)player error:(NSError *)error;
学习使用 欢迎转载
专一技术,热爱生活,交流技术,也作朋友。
——珲少 QQ群:203317592