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

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


lm3:ce:t_godot_voice

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
lm3:ce:t_godot_voice [2020/12/05 13:59]
ruben создано
lm3:ce:t_godot_voice [2020/12/08 18:34] (текущий)
admin [Пример реализации]
Строка 8: Строка 8:
  
 Рассмотрим проект обучения обслуживания серверов: преподаватель и учащиеся подключаются в одну виртуальную комнату - серверную. В режиме 3D или VR. Учащиеся выполняют сценарии обучения или следят за другими пользователями. Всем пользователям доступен общий голосовой чат. Рассмотрим проект обучения обслуживания серверов: преподаватель и учащиеся подключаются в одну виртуальную комнату - серверную. В режиме 3D или VR. Учащиеся выполняют сценарии обучения или следят за другими пользователями. Всем пользователям доступен общий голосовой чат.
 +
  
 ==== Репозитарий ==== ==== Репозитарий ====
Строка 38: Строка 39:
 <code lua> <code lua>
 { <ID клиента>, <Данные в байтах>, <Кодек>, <Частота дискретизации>, <Флаг стерео звука>} { <ID клиента>, <Данные в байтах>, <Кодек>, <Частота дискретизации>, <Флаг стерео звука>}
-<code>+</code>
  
  
 ==== Файловая структура проекта ==== ==== Файловая структура проекта ====
  
-==== ====+{{ :lm3:ce:godot_voice_files.png?direct |}} 
 + 
 +==== Скрипты ==== 
 + 
 +** voice / start.lua ** 
 + 
 +<code lua> 
 +lm3:Log("Starting LM voice"
 + 
 +lm3:LoadLibrary( {Alias = "sys", FileName = "lm3system"} ) 
 + 
 +lm3:CreateLObject( { LibAlias = "sys", Type = "TCPServer", Name = "server" } ) 
 +server:SetAttr("SocCount", lmconf.MaxClientCount) 
 +server:SetAttr("Port", 11024) 
 + 
 +server:AddHandler("OnConnect", function(o, ev) 
 +    lm3:Log("OnConnect: "..lm3:DataToString(ev)) 
 +end) 
 + 
 +server:AddHandler("OnDisconnect", function(o, ev) 
 +    lm3:Log("OnDisconnect: "..lm3:DataToString(ev)) 
 +end) 
 + 
 +lm3:AddHandler("OnStart", function(o, ev) 
 +    lm3:Log("OnStart"
 +end) 
 + 
 +-- трансляция аудиоданных всем, кроме данного пользователя 
 +server:AddHandler("OnIncoming", function(o, ev) 
 +    lm3:Log("OnIncoming"
 +    local array = server:GetAttr("Connected"
 +    for j = 1, #array do 
 +        if array[j] == true and j ~= ev.Tag then 
 +        --if array[j] == true then 
 +            lm3:Log("send to: "..lm3:DataToString(j)) 
 +            server:DoSend({ Tag = j, Data = ev.Data }) 
 +        end 
 +    end 
 +end) 
 +</code>
  
  
lm3/ce/t_godot_voice.1607165951.txt.gz · Последнее изменение: 2020/12/05 13:59 — ruben