it's just a simple branch of the original project, change the network platform to enet and solved the growing buffer issue with community help and some weird solution.
godot-voip is a Godot Engine addon which makes it very easy to setup a real-time voice-chat system in your Godot game. This addon also includes a demo project.
- 2.0: Godot Engine 3.2
- 3.0+: Godot Engine 3.3+
(Any kind of high-level multiplayer peer is required.)
- Click on the AssetLib inside editor or go to the Godot Asset Library to download the latest release, or you can clone/download this repository to get the latest commit.
- Select the
addons/godot-voip
folder and move it into your Godot project. (Note: make sure the structure is stillres://addons/godot-voip
) - Go to project-settings/audio and enable audio input.
- Now go to the plugins tab also inside project-settings and enable the godot-voip plugin.
- Add either a
VoiceInstance
(one connection) or aVoiceOrchestrator
(more than 2 participants) node to your scene. - Set
$VoiceInstance.recording
or$VoiceOrchestrator.recording
totrue
and it will send your microphone input to connected participants.
- Go to the templates tab in the Godot Engine project manager and look for godot-voip, or go to the Godot Asset Library to manually download the latest release, or you can clone/download this repository to get the latest commit.
- Open downloaded project.
Users running godot-voip on macOS need to make sure the microphone format in macOS audio settings is equal to the mix-rate in Godot project-settings.
This node implements a single voice connection.
received_voice_data(data: PoolRealArray, from_id: int)
Emitted when voice data is received.sent_voice_data(data: PoolRealArray)
Emitted when recording and data is sent.
Type | Name | description |
---|---|---|
NodePath |
custom_voice_audio_stream_player | When used, the referenced AudioStreamPlayer /AudioStreamPlayer2D /AudioStreamPlayer3D will be used as output for incoming audio data. |
bool |
recording | If true, the VoiceInstance will process and send microhphone audio to the other VoipInstance. |
bool |
listen | If true, the VoiceInstance will also play any microhphone data it records. |
float |
input_threshold | Value above which microhphone data will be sent. Set to 0 to disable. |
This node implements multiple voice connections. It will automatically spawn new VoiceInstances when a player connects to the server and will remove them again after they disconnect.
received_voice_data(data: PoolRealArray, from_id: int)
Emitted when voice data is received.sent_voice_data(data: PoolRealArray)
Emitted when recording and data is sent.created_instance(id: int)
Emitted when a newVoiceInstance
is created.removed_instance(id: int)
Emitted when aVoiceInstance
is removed.
Type | Name | description |
---|---|---|
bool |
recording | If true, the VoiceInstance will process and send microhphone data to the other VoipInstance. |
bool |
listen | If true, the VoiceInstance will also play any microhphone data it records. |
float |
input_threshold | Value above which microhphone data will be sent. Set to 0 to disable. |
Does not support a custom AudioStreamPlayer
.