标签:
音频我们简易的分为两种,既音效和音频。
1.音效:是有声音制造而成,主要用于加强对于对声音的处理。在用户使用app的时候加入音效,无疑是用户体验的加分项。
2.音乐:音乐的播放时间一般比较长,比如游戏中无限循环的背景音乐。
我们在使用音频的时候需要用到两个框架
1.AVFoundation.framework
2.AudioToolbox.framework
由于AVFoundation比较强大这里就先介绍一下AudioToolbox框架
音效播放常见函数总结
//加载音效文件
AudioServicesCreateSystemSoundID(CFURLRef inFileURL, SystemSoundID *outSystemSoundID)
//释放音效资源
AudioServicesDisposeSystemSoundID(SystemSoundID inSystemSoundID)
//播放音效
AudioServicesPlaySystemSound(SystemSoundID inSystemSoundID)
//播放音效带点震动
AudioServicesPlayAlertSound(SystemSoundID inSystemSoundID)
使用时需要注意,为了到达省电的目的,硬件的解码只能对一个音频文件进行解码。
下面来介绍一下AVFoundation框架
音乐播放用到一个叫做AVAudioPlayer的类
AVAudioPlayer常用方法
//加载音乐文件
- (id)initWithContentsOfURL:(NSURL *)url error:(NSError **)outError;
- (id)initWithData:(NSData *)data error:(NSError **)outError;
//准备播放(缓冲,提高播放的流畅性)
- (BOOL)prepareToPlay;
//播放(异步播放)
- (BOOL)play;
//暂停
- (void)pause;
//停止
- (void)stop;
//是否正在播放
@property(readonly, getter=isPlaying) BOOL playing;
//时长
@property(readonly) NSTimeInterval duration;
//当前的播放位置
@property NSTimeInterval currentTime;
//播放次数(-1代表无限循环播放,其他代表播放numberOfLoops+1次)
@property NSInteger numberOfLoops;
//音量
@property float volume;
//是否允许更改速率
@property BOOL enableRate;
//播放速率(1是正常速率,0.5是一般速率,2是双倍速率)
@property float rate;
//有多少个声道
@property(readonly) NSUInteger numberOfChannels;
//声道(-1是左声道,1是右声道,0是中间)
@property float pan;
//是否允许测量音量
@property(getter=isMeteringEnabled) BOOL meteringEnabled;
//更新测量值
- (void)updateMeters;
//获得当前的平均音量
- (float)averagePowerForChannel:(NSUInteger)channelNumber;
AVFoundation.framework和AudioToolbox.framework的常用方法就是这些了
开发中具体怎样使用这两个框架比较好,就仁者见仁,智者见智了。
随着时代的前进,OC成为历史只是时间问题了。面对swift的强势来袭,起初国内的大牛们只是持观望状态,
但是随着swift2.0的到来,这种趋势已经势不可挡了。最为一名优秀的开发者,同时掌握多个开发语言是刚需。
最为一名优秀的iOS开发者,同时掌握OC和swift也是刚需。
iOS开发-音效的使用
标签:
原文地址:http://www.cnblogs.com/wanglekai/p/5366307.html