我可以在播放新声音时播放背景音频.但是我无法再次将背景音频级别恢复到最大值.当我的代表试图"解开"它只是一直被躲避.对此的正常修复是AudiosessionSetProperty,但在iOS 7中已弃用,Apple未在弃用警告或文档中提供任何提示.
我在加载视图时调用此方法.
- (void) configureAVAudioSession { //get your app's audioSession singleton object AVAudioSession* session = [AVAudioSession sharedInstance]; //error handling BOOL success; NSError* error; success=[session setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionMixWithOthers error:&error]; if (!success) { NSLog(@"AVAudioSession error :%@",error); } else { } success = [session setActive:YES error:&error]; if (!success) { NSLog(@"Error setting active %@",error); } else { NSLog(@"succes settings active"); } }
这是我播放音频的时候
-(void)playTimeOnGo { NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"just-like-magic" ofType:@"mp3"]]; self.audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil]; self.audioPlayer.delegate=(id)self; //get your app's audioSession singleton object AVAudioSession* session = [AVAudioSession sharedInstance]; //error handling BOOL success; NSError* error; success=[session setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionDuckOthers error:&error]; [self.audioPlayer prepareToPlay]; [self.audioPlayer play]; AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); }
这是我的代表,当完成音频以恢复背景音频和取消停止音频
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)data successfully:(BOOL)flag{ [self configureAVAudioSession]; NSLog(@"playback ended"); }
那么如何在没有弃用API的情况下再次取消背景音乐?打电话 [self configureAVAudioSession];
显然不起作用....