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가 실행되지 않습니다.
에 오신 것을 환영합니다. Wi-Fi가 사용 중지 된 경우 사용자가 게임을 만들 수 없습니까? –