void OnAudioDataIn(VNetMessageVOIPData voip) { if (voip.offsetIndex + voip.blockLength > 8192) { source.clip = audioClip; source.Play(); } audioClip.SetData(voip.voiceData, voip.offsetIndex); }
public override VNetMessage Clone() { VNetMessageVOIPData clone = (VNetMessageVOIPData)base.Clone(); clone.recordTime = recordTime; clone.offsetIndex = offsetIndex; clone.blockLength = blockLength; clone.voiceData = new float[voiceData.Length]; for (int i = 0; i < voiceData.Length; i++) { clone.voiceData [i] = voiceData [i]; } return(clone); }
void Start() { if (Microphone.devices.Length == 0) { isActive = false; return; } m_audioClip = Microphone.Start(Microphone.devices[0], true, 1, 8192); m_samples = new float[8192]; m_activeSamples = new float[8192]; m_audioClip.GetData(m_samples, 0); lastDifferent = 0; firstDifferent = 8191; m_dataMessage = new VNetMessageVOIPData(); m_dataMessage.voiceData = new float[200]; isActive = true; }