Инструменты пользователя

Инструменты сайта


lm3:ce:t_godot_voice

Это старая версия документа!


Голосовой чат

В многопользовательском проекте бывает необходимо добавить голосовой чат. Платформа Лямбда-Мю может регулировать настройки, разрешая или запрещая вещание или прослушивание. Однако главной функцией платформы является передача данных между клиентами.

Рассмотрим пример такого проекта.

Пример реализации

Рассмотрим проект обучения обслуживания серверов: преподаватель и учащиеся подключаются в одну виртуальную комнату - серверную. В режиме 3D или VR. Учащиеся выполняют сценарии обучения или следят за другими пользователями. Всем пользователям доступен общий голосовой чат.

Репозитарий

Файловая структура проекта представлена ниже.

Необходимые скрипты туториала находятся в репозитарии lm3.examples/godot.voice.

Чтобы запустить платформу скачайте бинарный файл и необходимые библиотеки из репозитария lm3.engine.ce и скопируйте в корень проекта.

Исходные данные

  • Сцена серверной импортированная в Godot Engine
  • Запрограммированное управление виртуальным персонажем в режиме 3D и VR
  • Запрограммированный модуль связи lm3 и протокол передачи данных

Цель проекта

Добавление голосового чата с минимальным изменением исходного кода проекта

Разбор исходных данных

Аудиоданные слишком большие, чтобы не уделять время оптимизации передачи таких данных. В формате CD частота дискретизации 44100 Гц, т.е. 1 секунда аудиоданных весит ~200 кБ.

Чтобы избежать ненужных копирований данных, можно выделить отдельную логическую машину, которая будет транслировать данные от клиента к клиенту, оставив остальные взаимодействия с lm3 на основной машине. На стороне Godot необходимо обработать захват голоса пользователя и прослушивание других пользователей, описать второй TCP клиент и протокол передачи данных.

Протокол запросов и ответов

Аудиоданные представляют следующую структуру данных

<code lua> { <ID клиента>, <Данные в байтах>, <Кодек>, <Частота дискретизации>, <Флаг стерео звука>} <code>

Файловая структура проекта

lm3/ce/t_godot_voice.1607165951.txt.gz · Последнее изменение: 2020/12/05 13:59 — ruben