問題:有一些應用有這樣的需求,自定義鍵盤按鍵時增加字符放大效果和音效、震動效果,仿系統鍵盤;
說明:按鍵的放大效果,比較簡單,這裏不做說明,讀者可以自己去完成;這裏主要介紹下增加按鍵音效和震動效果;
ios 播放聲音文件的方法很多,有System Sound Service、AVAudioPlayer、Audio Queue Services 等多種方法;由於按鍵音效屬於短而小的聲音,對於這些短小且需要頻繁播放的音頻,最好將其加入到系統聲音(system sound)裏。
但是要注意幾點:
需要播放的音頻文件不能超過30秒
必須是IMA/ADPCM格式[in linear PCM or IMA4(IMA/ADPCM) format]
必須是.caf .aif .wav文件
不能控制播放的進度,方法調用後直接播放;
使用系統聲音播放的方法:
1、導入頭文件:
#import <AudioToolbox/AudioServices.h>
2、初始化音頻文件:
NSString * file_sound = [[NSBundle mainBundle] pathForResource:@"ButtonSound" ofType:@"WAV"];
3、創建系統聲音,同時返回一個ID;
SystemSoundID soundID;
AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:file_sound], &soundID);
4、根據ID播放自定義系統聲音;
AudioServicesPlayAlertSound(soundID);
5、增加震動效果,震動效果,其實是一個預定義的音效文件:kSystemSoundID_Vibrate ;
AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);
完..