2014-11-12 2 views
0

В моей игре 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?

+0

Должно быть, как iPhone, так и iPad, на которых я тестировал, работают под управлением iOS 8. – s3cur3

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^