Разработка
Разработка
Выберите платформу

Группы и групповые чаты

This is a Platform SDK feature requiring Data Use Checkup
Чтобы использовать эту или любую другую функцию Platform SDK, пройдите проверку использования данных (DUC). Проверка использования данных позволяет убедиться, что вы соблюдаете правила для разработчиков. Для этого администратор вашей команды должен подтвердить, что вы используете данные пользователей в соответствии с правилами платформы. Пока команда по проверке приложений не рассмотрит и не одобрит результаты проверки использования данных, функции платформы будут доступны только для тестовых пользователей.
Группы позволяют пользователям общаться в голосовом чате с друзьями в Доме Meta Horizon. Например, друзья могут создать группу в Доме и обсудить, в какую игру они хотят поиграть вместе. После запуска приложения их чат-сеанс продолжается внутри этого приложения.
Если ваше многопользовательское приложение поддерживает голосовой чат, групповой чат можно отключить.
Пользователи могут создать группу и начать голосовой чат с ее участниками, а также пригласить друзей присоединиться к разговору. Голосовой чат группы продолжается при переходе между приложениями в VR, и пользователи могут продолжать взаимодействовать. Это может создать проблемы, если в вашем приложении уже имеется функция голосового чата.
Apps for children can't use Platform SDK features
Если вы самостоятельно обозначаете возрастную группу и объявляете, что ваше приложение предназначено в первую очередь для детей младше 13 лет, не пользуйтесь функциями Platform SDK. Это ограничение обеспечивает соблюдение требований для определенных возрастов. Чтобы гарантировать это, функция проверки использования данных для вашего приложения будет отключена.

Получение текущей группы

Getting the current party is not available
С июня 2025 г. API для получения текущей группы не работает.
Для получения текущей группы использовался следующий API:
ovr_Party_GetCurrent()
Примечание. Любой запрос к этому API вернет ответ с сообщением об ошибке с кодом 10. Сообщение об ошибке: "Server response is not valid JSON." (Ответа сервера имеет недопустимый формат JSON.)

Варианты VoIP

Интеграция для поддержки групп не требуется, но есть несколько моментов, которые нужно учитывать, если вы хотите использовать микрофон для команд или чата в вашем приложении. Далее перечислены виды чатов, в которых может участвовать пользователь.
  • Системный, или групповой VoIP, — это сервис VoIP, применяемый в группах и на главной странице Horizon. Этот сервис не нуждается в интеграции и доступен всем пользователям.
  • Platform VoIP — это сервис VoIP, предоставляемый платформой Meta Horizon, и один из вариантов интеграции голосового чата в ваше приложение. Подробнее см. в статье Голосовой чат (VoIP).
  • Application VoIP — это любая служба VoIP, которая не является частью Meta Quest и используется в вашем приложении.
На этой странице описано, как приложение может использовать микрофон для чата или команд в рамках интеграции с групповым и системным VoIP.
Если вы собираетесь внедрить VoIP (VoIP платформы или приложения) в приложение, вам нужно будет управлять двумя потоками чата.

Пример нескольких потоков чата

Давайте рассмотрим пример обработки нескольких потоков чата:
  1. Аня и Вера находятся в группе.
  2. Аня запускает приложение, в которое играет Борис.
  3. Аня приглашает Бориса присоединиться к многопользовательской игре.
Если вы не поддерживаете этот сценарий, Аня будет общаться с Верой (через групповой VoIP) и Борисом (через VoIP приложения или платформы), но Вера и Борис не смогут слышать друг друга.
Один из вариантов решения проблемы — отключить поток Party VoIP и добавить Бориса в VoIP приложения, чтобы избежать конфликта.
  1. Вы отключаете поток группового VoIP.
  2. Борис добавляется в поток VoIP приложения.
  3. Аня, Вера и Борис могут общаться друг с другом.
Meta Quest предоставляет System VoIP API, с помощью которого можно определить, находится ли пользователь в группе и использует ли он системный VoIP, а также отключить поток VoIP.

Проверка статуса

Для использования System VoIP API сначала проверьте статус, чтобы удостовериться, что пользователь активен.
Существует два способа проверить состояние системного VoIP. 1. Проверять состояние на каждом кадре. 2. Ожидать уведомления.
  1. Проверка на каждом кадре. Чтобы в любой момент проверить, активен ли System VoIP, используйте следующую функцию. Обратите внимание: это синхронная функция, а не запрос.
    ovr_Voip_GetSystem VoIPStatus() == ovrSystem VoIPStatus_Active
  2. Прослушивание уведомлений. Чтобы получать уведомления о изменениях состояния VoIP, выполните следующий запрос: в нативных приложениях и приложениях Unreal прослушивайте уведомление для ovrMessage_Notification_Voip_System VoIPState, а затем используйте ovr_Message_GetSystem VoIPState() и ovr_System VoIPState_GetStatus() для получения статуса.
Состояние может меняться быстро. Значения, которые вы получаете из уведомлений, будут отражать состояние на момент добавления уведомления в очередь сообщений. Оно может отличаться от состояния на момент обработки сообщения. Вы можете дожидаться уведомления, а затем игнорировать его значения и проверять текущее состояние, используя синхронные функции.

Приостановка потока VoIP

Затем вы можете отключить поток VoIP, который не должен слышать пользователь, или разрешить пользователю слушать выбранный им поток.
Если системный VoIP активен, вы можете:
  • Включить VoIP в приложении для пользователя. Используйте эту настройку, чтобы пользователь находился в чате вашего приложения, а не в чате его группы. Для подавления System VoIP вызовите ovr_Voip_SetSystem VoIPSuppressed(bool suppressed), а затем используйте Platform VoIP или собственную VoIP службу для работы VoIP в приложении.
  • Включить System/Party VoIP для пользователя. Выберите эту настройку, чтобы пользователь оставался в чате своей группы и не использовал VoIP в приложении. Подавите VoIP в приложении (не передавайте звук с микрофона пользователя другим пользователям и не воспроизводите их аудио для этого пользователя). Если вы используете Platform VoIP, информацию о подавлении этого потока VoIP см. на странице Голосовой чат (VoIP).
Если закрыть и повторно открыть приложение, в котором System VoIP был подавлен, он включится заново. Вы можете прекратить подавление VoIP в группе пользователя, когда он покидает многопользовательскую часть приложения (например, главное меню), чтобы он мог продолжить общение со своей группой.
Вы можете дать пользователям возможность переключаться между System VoIP и VoIP вашего приложения. Так они могут выбрать, хотят ли они продолжить общение с группой (в этом случае вам нужно будет подавить внутренний VoIP) или использовать VoIP вашего приложения (в этом случае необходимо подавить системный VoIP).
Примечание. Следующие методы предназначены для разработки для Android.

Управление общими микрофонами с помощью переключателя микрофонов

В Android не поддерживается использование микрофона одновременно несколькими устройствами. Meta разработала функцию переключения микрофонов, чтобы предоставить пользователям возможность выбирать между System VoIP и Party VoIP. Подробнее см. в документации по функции переключения микрофонов.

Доступ к микрофону

Подробнее о доступе к микрофону в нативных приложениях и приложениях Unreal-приложениях см. в документации по Android AudioRecord.
Логотип навигации
Русский
© 2026 Meta