mirror of
https://github.com/thegatesbrowser/godot-multiplayer.git
synced 2025-09-22 11:26:56 -04:00
revert sample rate setting, bunch chunks from one frame
This commit is contained in:
parent
9ce4caa073
commit
8addd2966f
2 changed files with 12 additions and 7 deletions
|
@ -21,7 +21,6 @@ config/icon="res://icon.png"
|
||||||
|
|
||||||
buses/default_bus_layout="res://defaults/audio_bus_layout.tres"
|
buses/default_bus_layout="res://defaults/audio_bus_layout.tres"
|
||||||
driver/enable_input=true
|
driver/enable_input=true
|
||||||
driver/mix_rate=48000
|
|
||||||
|
|
||||||
[display]
|
[display]
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@ extends Node
|
||||||
@export var player_spawner: PlayerSpawner
|
@export var player_spawner: PlayerSpawner
|
||||||
|
|
||||||
var opuschunked: AudioEffectOpusChunked
|
var opuschunked: AudioEffectOpusChunked
|
||||||
|
var prepend: PackedByteArray = PackedByteArray()
|
||||||
var users = {} # {Peer ID: VoipUser}
|
var users = {} # {Peer ID: VoipUser}
|
||||||
|
|
||||||
|
|
||||||
|
@ -47,18 +48,23 @@ func _process(_delta: float) -> void:
|
||||||
if not Connection.is_peer_connected: return
|
if not Connection.is_peer_connected: return
|
||||||
if multiplayer.is_server(): return
|
if multiplayer.is_server(): return
|
||||||
|
|
||||||
var prepend = PackedByteArray()
|
var accumulated_opusdata: Array[PackedByteArray] = []
|
||||||
while opuschunked.chunk_available():
|
while opuschunked.chunk_available():
|
||||||
|
if not Microphone.is_speaking:
|
||||||
|
opuschunked.drop_chunk()
|
||||||
|
continue
|
||||||
|
|
||||||
var opusdata: PackedByteArray = opuschunked.read_opus_packet(prepend)
|
var opusdata: PackedByteArray = opuschunked.read_opus_packet(prepend)
|
||||||
opuschunked.drop_chunk()
|
opuschunked.drop_chunk()
|
||||||
|
accumulated_opusdata.append(opusdata)
|
||||||
|
|
||||||
if not Microphone.is_speaking: continue
|
if Microphone.is_speaking:
|
||||||
rpc("opus_data_received", opusdata)
|
rpc("opus_data_received", accumulated_opusdata)
|
||||||
|
|
||||||
|
|
||||||
@rpc("any_peer", "call_remote", "unreliable_ordered", 1)
|
@rpc("any_peer", "call_remote", "unreliable_ordered", 1)
|
||||||
func opus_data_received(opusdata: PackedByteArray) -> void:
|
func opus_data_received(opusdata_array: Array[PackedByteArray]) -> void:
|
||||||
if multiplayer.is_server(): return
|
if multiplayer.is_server(): return
|
||||||
|
|
||||||
var sender_id = multiplayer.get_remote_sender_id()
|
var sender_id = multiplayer.get_remote_sender_id()
|
||||||
users[sender_id].opuspacketsbuffer.append(opusdata)
|
users[sender_id].opuspacketsbuffer.append_array(opusdata_array)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue