音频聊天服务 负责高级音频聊天功能。这主要由配置选项和不被更具体实例特别控制的函数组成。
概要
属性
决定在 AudioDeviceInput 和 AudioEmitter 对象生成时,默认语音聊天设置使用的距离减弱曲线。
控制每个有资格发言的玩家是否可以被听到,好像他们通过角色发言。
控制语音聊天是否由 AudioDeviceInput 对象代表和控制。
方法
返回指定用户是否启用了语音。
属性
DefaultDistanceAttenuation
该属性控制默认距离衰减曲线,用于任何生成的 AudioEmitter 实例在默认语音聊天设置中。
此属性只有效果,如果 EnableDefaultVoice 和 UseAudioApi 都启用,因为无 AudioEmitters 不会生成。
EnableDefaultVoice
启用后,每个有资格发言的玩家都可以被听到,仿佛他们正在通过角色发言。语音设置的实现细节取决于 UseAudioApi。
当 UseAudioApi 是 Enabled 时,禁用此属性会禁用默认配置,但 AudioDeviceInput 仍然会工作。相反,当 UseAudioApi 是 Disabled 时,禁用默认语音设置会有效地禁用语音聊天。
UseAudioApi
如果 Enabled ,语音聊天设置由 AudioDeviceInput 对象表示并控制。更具体地说:
- 一个 AudioDeviceInput 将被创建并指派给每个有语音权限的 Player 。
- 一个 AudioEmitter 将被创建并指向每个声音适格的玩家的 Player.Character 。
- 一个 AudioListener 将被创建并指向 Workspace.CurrentCamera 。
您可以通过设置 VoiceChatService.EnableDefaultVoice 为 false 来禁用默认配置。
如果 Disabled,语音聊天设置通过内部仅系统完成。
目前,将其设置为 Automatic 具有与 Disabled 相同的意义。然而,在未来,Automatic 将变为 Enabled ,以便新体验可以在语音上实现更大的自定义。
方法
IsVoiceEnabledForUserIdAsync
返回指定用户是否启用了语音。在客户端,这仅可用于检查本地玩家的语音状态。在服务器端,这只能检查该服务器上的玩家的语音状态。
此函数可以在 HTTP 请求失败时抛出错误。
local Players = game:GetService("Players")
local VoiceChatService = game:GetService("VoiceChatService")
local localPlayer = Players.LocalPlayer
local success, enabled = pcall(function()
return VoiceChatService:IsVoiceEnabledForUserIdAsync(localPlayer.UserId)
end)
if success and enabled then
print("Voice chat enabled!")
end
参数
要检查的 Player.UserId 。
返回
如果该用户启用了声音。