音頻後臺 不中斷ipod

最近做音頻合成,看了百度很多的音頻後臺,但不是自己想要的效果.於是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);



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章