2013-08-18 7 views
1

Я использую этот код для воспроизведения короткого звукового эффекта. Это происходит, когда пользователь нажимает кнопку возврата на клавиатуре, что делает звук нажатия клавиши громче, чем обычно. Можно ли воспроизвести эффект на определенном томе, не влияя на звуки системы?AVAudioPlayer влияет на системные звуки

- (void)playCorrectAnswerSound { 
NSString *path = [[NSBundle mainBundle] pathForResource:@"correct" ofType:@"mp3"]; 
NSURL *urlPath = [NSURL fileURLWithPath:path]; 
self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:urlPath error:nil]; 
self.player.volume = 0.04; 
[self.player prepareToPlay]; 
[self.player play]; 

}

+0

Что вы в итоге сделали? – durazno

ответ

0

Установка аудио-сессии категории вашего приложения к AVAudioSessionCategoryAmbient, добавив следующий код applicationDidFinishLaunchingWithOptions: метод своего приложения делегата:

NSError *sessionError = nil; 
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:&sessionError]; 
    [[AVAudioSession sharedInstance] setActive:YES error:&sessionError]; 
    [[AVAudioSession sharedInstance] setDelegate:self]; 

От компании Apple doc:

Эта категория позволяет аудио с iPod, Safari и ot ее встроенные приложения для воспроизведения, когда ваше приложение воспроизводит аудио.

+0

Этот ответ для чего-то совершенно другого. Я понимаю, о чем идет речь, потому что я испытываю одну и ту же проблему, и этот ответ буквально разрешает приложению воспроизводить свой звук, пока звучит звук другого приложения, и это не устраняет проблему здесь. – durazno