public void PlayAudio(OpusData opusData) { if (currentAudioFrameCount != opusData.FrameCount) { currentAudioFrameCount = opusData.FrameCount; m_OpusPlayer.PlayAudio(opusData); } }
void OnEncoded(byte[] data, int length, int frameCount) { voiceData = new OpusData { Bytes = data, EncodedLength = length, FrameCount = frameCount }; client.PlayerDataAsync(playerParts, voiceData); }
public void PlayAudio(OpusData opusData) { if (opusData == null) { return; } var pcmLength = decoder.Decode(opusData.Bytes, opusData.EncodedLength, pcmBuffer); if (audioClipData == null || audioClipData.Length != pcmLength) { audioClipData = new float[pcmLength]; } Array.Copy(pcmBuffer, audioClipData, pcmLength); audioSource.clip.SetData(audioClipData, head); head += pcmLength; if (!audioSource.isPlaying && head > audioClipLength / 2) { audioSource.Play(); } head %= audioClipLength; }
public async Task PlayerDataAsync(Part[] parts, OpusData voiceData) { self.Parts = parts; self.VoiceData = voiceData; BroadcastExceptSelf(room).OnPlayerData(self); }
public Task PlayerDataAsync(Part[] parts, OpusData voiceData) { return(client.PlayerDataAsync(parts, voiceData)); }