- 論壇徽章:
- 0
|
- //AudioToolbox.framework是一套基于C語言的框架,使用它來播放音效其本質(zhì)是將短音頻注冊(cè)到系統(tǒng)聲音服務(wù)(System Sound Service)
- //System Sound Service的限制:
- //1.音頻播放時(shí)間不能超過30s
- //2.數(shù)據(jù)必須是PCM或者IMA4格式
- //3.音頻文件必須打包成.caf、.aif、.wav中的一種(注意這是官方文檔的說法,實(shí)際測(cè)試發(fā)現(xiàn)一些.mp3也可以播放)
復(fù)制代碼
1.png (18.84 KB, 下載次數(shù): 62)
下載附件
2015-06-01 10:52 上傳
播放音頻的方法:- /**
- * 播放完成回調(diào)函數(shù)
- *
- * @param soundID 系統(tǒng)聲音ID
- * @param clientData 回調(diào)時(shí)傳遞的數(shù)據(jù)
- */
- void soundCompleteCallback(SystemSoundID soundID,void * clientData){
- NSLog(@"播放完成...");
- }
- /**
- * 播放音效文件
- *
- * @param name 音頻文件名稱
- */
- -(void)playSoundEffect:(NSString *)name{
- NSString *audioFile=[[NSBundle mainBundle] pathForResource:name ofType:nil];
- NSLog(@"%@",audioFile);
- NSURL *fileUrl=[NSURL fileURLWithPath:audioFile];
- //1.獲得系統(tǒng)聲音ID
- SystemSoundID soundID=0;
- /**
- * inFileUrl:音頻文件url
- * outSystemSoundID:聲音id(此函數(shù)會(huì)將音效文件加入到系統(tǒng)音頻服務(wù)中并返回一個(gè)長整形ID)
- */
- AudioServicesCreateSystemSoundID((__bridge CFURLRef)(fileUrl), &soundID);
- //如果需要在播放完之后執(zhí)行某些操作,可以調(diào)用如下方法注冊(cè)一個(gè)播放完成回調(diào)函數(shù)
- AudioServicesAddSystemSoundCompletion(soundID, NULL, NULL, soundCompleteCallback, NULL);
- //2.播放音頻
- AudioServicesPlaySystemSound(soundID);//播放音效
- // AudioServicesPlayAlertSound(soundID);//播放音效并震動(dòng)
- }
復(fù)制代碼 |
|