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

之前项目中做了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;



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

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




你可能感兴趣的:(ios,基础,分享,AVAudioPlayer,音效)