GKVoiceChat не работает на GameCenter Match

Я пытаюсь настроить голосовой чат в игре, которую разрабатываю для iOS, она успешно создает совпадение, но когда я пытаюсь настроить голосовой чат, ничего не происходит, что я делаю не так? Работает без ошибок. Вот код, который я использую для голосового чата.

- (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;
        } };
}

Где установите PlayAndRecordAudioSession:

- (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;
}

Код успешно регистрирует "Сделал стабильный голосовой чат", поэтому он запускает код, но когда я начинаю говорить, кажется, что он не получает голос и не отправляет его. Что я делаю неправильно? Я что-то пропустил? PS Я не получаю GKVoiceChatPlayerConnected уволен.

1 ответ

Убедитесь, что Wi-Fi включен на обоих устройствах.

(Я несколько часов бился головой об этом, и, наконец, понял, что случайно отключил Wi-Fi на одном из двух моих тестовых устройств)

Другие вопросы по тегам