属性
描述
@property(readonly, getter=isPlaying) BOOL playing
是否正在播放,只读
@property float volume
音量大小,范围0~1.0
@property float pan
立体声,-1.0完全左声道,0.0左右声道平衡,1.0完全右声道
@property float rate
播放速率,范围0.5~2.0,1.0时为正常播放,如果需要更改播放速率必须设置enableRate为YES
@property BOOL enableRate
是否可以更改播放速率
@property NSInteger numberOfLoops
重复播放次数,为0时只播放一次,小于0时为无限播放,大于0时表示循环次数
@property(readonly) NSDictionary *settings
音频播放次数信息,只读
@property(readonly) NSUInteger numberOfChannels
与音频播放器相关联的声音通道的数量。(只读)
@property(nonatomic, copy) NSArray *channelAssignments
与音频播放器相关AVAudioSessionChannelDescription对象数组
@property(readonly) NSTimeInterval duration
播放时长
@property NSTimeInterval currentTime
当前播放时长
@property(readonly) NSTimeInterval deviceCurrentTime
输出设备播放音频的时间,注意如果播放中被暂停此时间也会继续累加
@property(readonly) NSURL *url
音频文件路径,只读
@property(readonly) NSData *data
音频数据,只读
@property(getter=isMeteringEnabled) BOOL meteringEnabled
否启用音频测量,默认为NO,一旦启用音频测量可以通过updateMeters方法更新测量值
对象方法
描述
- (instancetype)initWithContentsOfURL:(NSURL *)url error:(NSError **)outError
使用文件URL初始化播放器,注意这个URL不能是HTTP URL,AVAudioPlayer不支持加载网络媒体流,只能播放本地文件
- (instancetype)initWithData:(NSData *)data error:(NSError **)outError
使用NSData初始化播放器,注意使用此方法时必须文件格式和文件后缀一致,否则出错,所以相比此方法更推荐使用上述方法
或- (instancetype)initWithData:(NSData *)data fileTypeHint:(NSString *)utiString error:(NSError **)outError方法进行初始化
- (BOOL)play
播放音频文件
- (BOOL)playAtTime:(NSTimeInterval)time
在指定的时间开始播放音频;延迟播放;使用的时候先获取设备当前时间+延时播放
- (void)pause
暂停播放
- (void)stop
停止播放
- (BOOL)prepareToPlay
将音频文件加载到缓冲区
- (float)averagePowerForChannel:(NSUInteger)channelNumber
获得指定声道的分贝平均值,注意如果要获得分贝平均值必须在此之前调用updateMeters方法
- (float)peakPowerForChannel:(NSUInteger)channelNumber
获得指定声道的分贝峰值,注意如果要获得分贝峰值必须在此之前调用updateMeters方法
- (void)updateMeters
更新音频测量值,注意如果要更新音频测量值必须设置meteringEnabled为YES,通过音频测量值可以即时获得音频分贝等信息
代理方法
说明
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
播放完成后调用,在这里可以进行一些属性的设置
- (void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer *)player error:(NSError *)error
音频解码发生错误