iOS 声音和音效

声音

1.声音需要导入AVFoundation框架。

#import <AVFoundation/AVFoundation.h>

2.需要从Bundle(即app包下的资源)或则本地以及网络资源加载文件,prepareToPlay准备播放

//设置背景音乐

    NSString *path=[[NSBundle mainBundle] pathForResource:@"背景音乐" ofType:@"caf"];

    //注意路径转成url的时候   本地的用fileUrlwithPath  网络的用URLwithstring

    NSURL *url=[NSURL fileURLWithPath:path];

    _soundPlayer=[[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];

    [_soundPlayer setVolume:0.2f];

    //设置准备播放在播放效果比较好  提前准备下

    [_soundPlayer prepareToPlay];


3.声音可以控制大小播放等。


音效

1.需要导入AudioToolBox矿建

#import <AudioToolbox/AudioToolbox.h>

2.使用C语言直接将音频加入到内存,通过SystemSoundID来播放。

3.播放的时候控制不了音量也暂停不了。

4.效率高,通常播放时间段的音频,一般不超过2秒。

5.通常为了避免同一个音效文件在不同的控制器中被重复加载,造成无谓的内存消耗,在使用音效的时候,通常使用数据字典来保存创建的SoundID,根据是否存在SoundID在判断是否加载音频文件。

-(SystemSoundID)loadSound:(NSString *)name{

    NSString *path=[[NSBundle mainBundle] pathForResource:name ofType:nil];

    NSURL *url=[NSURL fileURLWithPath:path];

    //SystemSoundID不是一个指针类型  所以传他的地址进去

    SystemSoundID soundID;

    AudioServicesCreateSystemSoundID((__bridge CFURLRef _Nonnull)(url), &soundID);

    return soundID;

}

AudioServicesPlayAlertSound(_pingSoundID); 关闭提示音是可以关闭的

AudioServicesPlayAlertSound(_sucessfulSoundID); 有震动  关闭不了的



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值