一、AVAudioPlayer
二、Audio Queue Services
三、Audio File Services
-
(void)playSystemSound {
// 要播放的音频文件地址
NSString *urlPath = [[NSBundle mainBundle] pathForResource:@"fire_alarm" ofType:@"caf"];
NSURL *url = [NSURL fileURLWithPath:urlPath];
// 声明需要播放的音频文件ID[unsigned long]
SystemSoundID soundID;
// 创建系统声音,同时返回一个ID
AudioServicesCreateSystemSoundID((__bridge CFURLRef)(url), &soundID);_soundID = soundID;
AudioServicesPlaySystemSound(soundID);
AudioServicesAddSystemSoundCompletion(soundID, NULL, NULL, &playFinished, (__bridge void *)(self));
//播放震动音
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
}
void playFinished(SystemSoundID ssID, void* clientData)
{
unsigned long ID = ssID; // ssID 不能直接作为参数打印出来,需要中转一次
// NSLog(@"播放完成-传入ID为-%lu,传入的参数为%@", ID, clientData);
/在此处填写你要在播放完成后执行的代码/
SystemSoundID soundID = (UInt32)ID ;
AudioServicesPlaySystemSound(soundID);
}
-(void)dealloc {
// 根据ID释放自定义系统声音
SystemSoundID soundID = _soundID;
AudioServicesDisposeSystemSoundID(soundID);
AudioServicesRemoveSystemSoundCompletion(soundID);
}
四、OpenAL
网友评论