2013-07-23 3 views
0

iOS 용으로 개발중인 게임에서 음성 채팅을 설정하려고합니다. 게임을 성공적으로 만들지 만 음성 채팅을 설정할 때 아무 것도하지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 오류를 내지 않고 실행됩니다. 음성 채팅을하기 위해 사용하는 코드는 다음과 같습니다.GKVoiceChat이 GameCenter와 일치하지 않습니다.

- (void)establishVoice 
{ 
    if (![GKVoiceChat isVoIPAllowed]) 
     return; 

    if (![self establishPlayAndRecordAudioSession]) 
     return; 

    NSLog(@"Did stablish voice chat"); 

    chat = [match voiceChatWithName:@"GeneralChat"]; 
    [chat start]; // stop with [chat end]; 
    chat.active = YES; // disable mic by setting to NO 
    chat.volume = 1.0f; // adjust as needed. 

    chat.playerStateUpdateHandler = ^(NSString *playerID, GKVoiceChatPlayerState state) { 
     switch (state) 
     { 
      case GKVoiceChatPlayerSpeaking: 
       // Highlight player's picture 
       NSLog(@"Speaking"); 
       break; 
      case GKVoiceChatPlayerSilent: 
       // Dim player's picture 
       NSLog(@"Silent"); 
       break; 
      case GKVoiceChatPlayerConnected: 
       // Show player name/picture 
       NSLog(@"Voice connected"); 
       break; 
      case GKVoiceChatPlayerDisconnected: 
       // Hide player name/picture 
       NSLog(@"Voice disconnected"); 
      break; 
     } }; 
} 

establishPlayAndRecordAudioSession은 여기서

- (BOOL) establishPlayAndRecordAudioSession 
{ 
    NSLog(@"Establishing Audio Session"); 
    NSError *error; 
    AVAudioSession *audioSession = [AVAudioSession sharedInstance]; 
    BOOL success = [audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:&error]; 
    if (!success) 
    { 
     NSLog(@"Error setting session category: %@", error.localizedFailureReason); 
     return NO; 
    } 
    else 
    { 
     success = [audioSession setActive: YES error: &error]; 
     if (success) 
     { 
      NSLog(@"Audio session is active (play and record)"); 
      return YES; 
     } 
     else 
     { 
      NSLog(@"Error activating audio session: %@", error.localizedFailureReason); 
      return NO; 
     } 
    } 

    return NO; 
} 

코드 성공적으로 코드를 실행 않도록, "stablish 음성 채팅을 했습니까"로그,하지만 이야기를 시작하면, 그것을 얻을하지 않는 것 목소리도 보내지 마라. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 내가 놓친 게 있니? 추신 GKVoiceChatPlayerConnected가 실행되지 않습니다.

답변

0

두 장치 모두에서 Wi-Fi가 켜져 있는지 확인하십시오.

는 (나는 시간이 내 머리를 두드리는, 그리고 마지막으로 내가 실수로 2 개 테스트 장치 중 하나에 무선 랜을 해제 거라고 실현) 스택 오버플로

+0

에 오신 것을 환영합니다. Wi-Fi가 사용 중지 된 경우 사용자가 게임을 만들 수 없습니까? –