Мне удалось направить звук на громкоговоритель, однако он по-прежнему не будет воспроизводиться на максимально возможной громкости. Я пробовал [audioAlert setVolume:1.0], и он по-прежнему остается на том уровне громкости, который в настоящее время установлен пользователем. Если у кого-то есть идея, что я делаю неправильно, я был бы очень признателен.
Вот мой код:
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:NULL];
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&audioRouteOverride);
NSURL* soundUrl = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"HsTR_soundEFX_2-1" ofType:@"mp3"]];
audioAlert= [[AVAudioPlayer alloc] initWithContentsOfURL:soundUrl error:nil];
audioAlert.delegate = self;
[audioAlert setVolume:1.0];
[audioAlert prepareToPlay];
[audioAlert play];
Спасибо Полу Перри!
СЕЙЧАС РЕШЕНО:
Я включил немного больше, чтобы также вернуть его к предыдущему объему, используя код ниже:
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:NULL];
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&audioRouteOverride);
NSURL* soundUrl = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"HsTR_soundEFX_2-1" ofType:@"mp3"]];
audioAlert= [[AVAudioPlayer alloc] initWithContentsOfURL:soundUrl error:nil];
audioAlert.delegate = self;
[audioAlert prepareToPlay];
float maxVolume = 1.0;
float currentVolume=[MPMusicPlayerController applicationMusicPlayer].volume;
[[MPMusicPlayerController applicationMusicPlayer] setVolume:maxVolume];
[audioAlert play];
//set up timer to wait until audioAlert is finished playing,
// and then call the line below to set the volume back to it's original setting
[[MPMusicPlayerController applicationMusicPlayer]setVolume:currentVolume];