最近做音頻合成,看了百度很多的音頻後臺,但不是自己想要的效果.於是google加官方文檔,實現了自己想要的東西.
特此記錄一下.與有同需求的朋友分享一下.
目的功能主要是音頻能後臺 程序啓動不中斷ipod能與ipod混音
轉載請保留出處:http://blog.csdn.net/fightper/article/details/7516876
關鍵代碼:
AudioSessionInitialize (NULL,NULL,NULL,NULL);//初始化音頻
UInt32 sessionCategory =kAudioSessionCategory_MediaPlayback;//設置後臺播放
AudioSessionSetProperty (kAudioSessionProperty_AudioCategory,sizeof (sessionCategory), &sessionCategory);
UInt32 allowMixWithOthers =true;//設置是否與ipod混合(與ipod聲音一樣大)
AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryMixWithOthers,sizeof(allowMixWithOthers), &allowMixWithOthers);
UInt32 allowAudioShouldDuck =true;//設置是否與ipod混合(ipod聲音變小,應用程序聲音變大)
AudioSessionSetProperty(kAudioSessionProperty_OtherMixableAudioShouldDuck,sizeof(allowAudioShouldDuck), &allowAudioShouldDuck);
AudioSessionSetActive(true);//激活audiosession
/*調用高級類設置方法
[[AVAudioSession sharedInstance] setActive:YES error: nil];
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error:nil];
//調用遠程播放控件
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
*/
//系統提示音調用
staticvoid completionCallback (SystemSoundID soundID,void* aa) {}
musicID = 0;
SystemSoundID soundID;
NSString *path = [[NSBundlemainBundle]pathForResource:@"tishi"ofType:@"aif"];
CFURLRef soundURL = (CFURLRef)[NSURLfileURLWithPath:path];
AudioServicesCreateSystemSoundID(soundURL,&soundID);
AudioServicesPlaySystemSound (kSystemSoundID_Vibrate);
AudioServicesAddSystemSoundCompletion(soundID,NULL,NULL,completionCallback,(void *)musicID);
AudioServicesPlayAlertSound(soundID);