可以有以下两个方法初始化,data必须是Core Audio能解析识别的才行
- (id)initWithContentsOfURL:(NSURL *)url error:(NSError **)outError;
- (id)initWithData:(NSData *)data error:(NSError **)outError;
7.0之后又多了两个方法 utiString文件类型提示字符串
- (id)initWithContentsOfURL:(NSURL *)url fileTypeHint:(NSString*)utiString error:(NSError **)outError
- (id)initWithData:(NSData *)data fileTypeHint:(NSString*)utiString error:(NSError **)outError
以下是播放视频时的方法
- (BOOL)prepareToPlay;预播放 将文件内容加入缓冲当中
- (BOOL)play;播放
- (BOOL)playAtTime:(NSTimeInterval)time 在某一时刻播放 time必须是在音乐总时间之间才有意义
- (void)pause;暂停 当前播放时间不变
- (void)stop;停止 将缓冲区中的文件清除
以下是一些属性
@property(readonly,getter=isPlaying)BOOL playing;是否正在播放
@property(readonly)NSUInteger numberOfChannels;声道的总数
@property(readonly)NSTimeInterval duration;音乐的总时长
@property float volume; 音量 0-1之间
@propertyBOOL enableRate 能够设置播放速度
@property float rate 播放速度 2为正常速度的两倍
@property NSTimeInterval currentTime;当期播放的时间
@property(readonly)NSTimeInterval deviceCurrentTime设备当前时间
@property NSInteger numberOfLoops;运行次数
@property(getter=isMeteringEnabled)BOOL meteringEnabled;能够更新
- (void)updateMeters; 更新获取最新的数据
- (float)peakPowerForChannel:(NSUInteger)channelNumber;每个声道的峰值
- (float)averagePowerForChannel:(NSUInteger)channelNumber;每个声道的平均值
@property(nonatomic,copy)NSArray* channelAssignments 设置声道
@property(readonly)NSDictionary *settings 设置属性 AVAudioSettings.h
代理方法
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag;//结束
- (void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer *)player error:(NSError *)error;//错误
- (void)audioPlayerBeginInterruption:(AVAudioPlayer *)player;//开始中断
- (void)audioPlayerEndInterruption:(AVAudioPlayer *)player withOptions:(NSUInteger)flags//中断结束