В моей игре iOS я поддерживаю push-to-talk, используя GKVoiceChat Game Center.Объем приложения звучит на iPad при использовании GKVoiceChat
Когда два иона подключены в многопользовательском матче, это работает так, как ожидалось: звуки игры слышны примерно на том же уровне, что и голос другого игрока (голос может быть чуть-чуть громче), а объем игры согласован независимо от того, использует ли другой плеер функцию push-to-talk.
Однако на iPad громкость звуков резко уменьшается; звуки игры воспроизводятся примерно в одной четверти, когда громкость голоса звучит так тихо, что, если вы не приложите ухо к динамику, вам трудно сказать, что все игровые звуки вообще воспроизводятся. (Голос звучит в полном объеме.) Для сравнения, объем iPhone оглушает.
Вот как я настройка аудио:
AVAudioSession* avSession = [AVAudioSession sharedInstance];
NSError *myError = nil;
[avSession setActive:YES error:&myError];
if(myError)
NSLog(@"Error initializing audio session: %@", myError);
[avSession setCategory:AVAudioSessionCategoryPlayAndRecord
error: &myError];
if(myError)
NSLog(@"Error setting audio session category: %@", myError);
[avSession setMode:AVAudioSessionModeVoiceChat
error:&myError];
if(myError)
NSLog(@"Error setting audio session mode: %@", myError);
// By default, AVAudioSessionCategoryPlayAndRecord sends audio output to the phone's earpiece; instead, we want to force it to the speakers
[avSession overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker
error:&myError];
if(myError)
NSLog(@"Error changing audio port to speakers: %@", myError);
Потом, позже, когда матч мультиплеер установлен, мы создали голосовой чат, как это:
self.myVoiceChannel = [[self myMatch] voiceChatWithName:@"allPlayers"];
[[self myVoiceChannel] start];
[[self myVoiceChannel] setActive:NO];
self.myVoiceChannel.volume = 1.0;
Я ve подтвердил, что комментировать комментарий [[self myVoiceChannel] start]
достаточно для восстановления объема iPad до ожидаемых уровней.
Что удивительно, так это то, что [[AVAudioSession sharedInstance] mode]
никогда не устанавливается в AVAudioSessionModeGameChat
--- независимо от того, когда я ожидаю, это всегда AVAudioSessionModeVoiceChat
. От the AVAudioSession documentation, похоже, когда я начал GKVoiceChat, это было бы изменено автоматически.
Любые идеи, почему звук iPad будет смешаться так же, как и iPhone?
Должно быть, как iPhone, так и iPad, на которых я тестировал, работают под управлением iOS 8. – s3cur3