音乐和音效的加载播放

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

在有些应用中需要用到背景音乐和音效,那在程序中是这么实现的。

1.首先加载背景音乐需要用到AVFoundation框架

2.音乐资源都是在包里的,所以需要获得包路径,涉及方法- (id)initWithContentsOfURL:(NSURL*)url error:(NSError**)outError;

url其实就是包地址,可以通过[[NSBundlemainBundle]pathForResource:@"背景音乐"ofType:@"caf"];获得到路径path,然后用NSURL的fileURLWithPath方法将path转化为url;

3.设置音乐播放次数.numberOfLoops。设为0仅播放一次;设为1则循环1次播放2次;设为-1则循环播放不间断;

4.设置音乐声音大小.volume。

5.准备播放,调用方法PRepareToPlay。

6.开始播放,调用方法 play;停止播放:stop;

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

NSURL*url =[NSURL fileURLWithPath:path];

AVAudioPlayer*player =[[AVAudioPlayer alloc]initWithContentsOfURL:url error:nil];

player.numberOfLoops= -1;

player.volume=0.5f;

[player prepareToPlay];

[player play];

而加载音效则需要用到AudioToolbox框架,和音乐一样需要加载包路径,使用的方法是AudioServicesCreateSystemSoundID,这是个c语言的方法,其中传入的url需要用到__bridge进行转换,传出一个SystemSoundID来提供播放的时候调用,播放使用的方法是AudioServicesPlaySystemSound(SystemSoundIDinSystemSoundID) 。

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

NSURL*url =[NSURL fileURLWithPath:path];

SystemSoundID soundID;

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

AudioServicesPlaySystemSound(soundID);

此外还有个方法是AudioServicesPlayAlertSound,此方法在播放音效的同时会发出震动,给用户提醒。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航