项目中添加音效--依旧的简单使用

之前项目中做了2个需求 一个是页面有两面大鼓,然后可以敲打 ,发出咚咚的声音,一个鼓为重音,一个鼓为低音。另一个需求是微信摇一摇那种咔嚓咔嚓 和叮咚一类的音效,简单整理了下代码。


首先需要声明的类为并加上代理

 #import<AVFoundation/AVFoundation.h>

@interface ViewController ()<AVAudioPlayerDelegate>


其次需要声明两个全局的控件

AVAudioPlayer *avAudioPlayerUp;   //播放器player

AVAudioPlayer *avAudioPlayerDown;   //播放器player


再者我们需要提前建立好声音控件的各种属性

-(void)avPlaye{

   //budle路径下读取音频文件,mp3是你的音频格式

   NSString *stringUp = [[NSBundlemainBundle] pathForResource:@"歌曲名"ofType:@"mp3"];

   NSString *stringDown = [[NSBundlemainBundle] pathForResource:@"歌曲名"ofType:@"格式名"];


   //把音频文件转换成url格式

   NSURL *urlUp = [NSURLfileURLWithPath:stringUp];

   NSURL *urlDown = [NSURLfileURLWithPath:stringDown];

    

   //初始化音频类 并且添加播放文件

   avAudioPlayerUp = [[AVAudioPlayeralloc] initWithContentsOfURL:urlUperror:nil];

   avAudioPlayerDown = [[AVAudioPlayeralloc] initWithContentsOfURL:urlDownerror:nil];

    

   //设置代理

   avAudioPlayerUp.delegate =self;

   avAudioPlayerDown.delegate =self;

    

   //设置初始音量大小

   // avAudioPlayer.volume = 1;

    

   //设置音乐播放次数  -1为一直循环

   avAudioPlayerUp.numberOfLoops =1;

   avAudioPlayerDown.numberOfLoops =1;

    

   //预播放

    [avAudioPlayerUp   prepareToPlay];

    [avAudioPlayerDown  prepareToPlay];


   //从第几秒开始播放

    avAudioPlayerUp.currentTime=0.;

    avAudioPlayerDown.currentTime=0.;

}


最后我们需要在你需要播放音频的位置让它play就好了

[avAudioPlayerUp  play];

[avAudioPlayerDown  play];


注:当然如果你需要像我一样,是把一些时间较短,需要多次重复的音频来回播放的话你可以这样调用,来满足你的效果

- (void)playUp{

    //开启音效

    [avAudioPlayerUpstop];//结束音效

    avAudioPlayerUp.currentTime=0.0;//让音频播放时间回到起点

    [avAudioPlayerUpplay];//再次播放

}


最后加上两个,常用的代理

//播放完成时

- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag;


//解析出错时

- (void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer *)player error:(NSError * __nullable)error;



你一直比你想象中的强大~

感谢观看,学以致用更感谢!




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值