public void StartRecording() { current_users_ids = new List <string>(); saving_folder = metagen_comp.dataManager.saving_folder; foreach (var item in metagen_comp.userMetaData) { User user = item.Key; UserMetadata metadata = item.Value; if (!metadata.isRecording || (metagen_comp.LocalUser == user && !metagen_comp.record_local_user)) { continue; } RefID user_id = user.ReferenceID; current_users_ids.Add(user_id.ToString()); AvatarAudioOutputManager comp = user.Root.Slot.GetComponentInChildren <AvatarAudioOutputManager>(); AudioOutput audio_output = comp.AudioOutput.Target; audio_outputs[user_id] = audio_output; if (audio_outputs[user_id] == null) { UniLog.Log("OwO: Audio output for user " + user_id.ToString() + " is null!"); } else { UniLog.Log("Sample rate"); UniLog.Log(metagen_comp.Engine.AudioSystem.Connector.SampleRate.ToString()); audio_recorders[user_id] = new AudioRecorder(saving_folder + "/" + user_id.ToString() + "_voice_tmp", metagen_comp.Engine.AudioSystem.BufferSize, 1, metagen_comp.Engine.AudioSystem.SampleRate, 1); audio_recorders[user_id].StartWriting(); } } isRecording = true; }
public void StartInteracting() { foreach (var item in metagen_comp.userMetaData) { User user = item.Key; UserMetadata metadata = item.Value; if (!(metadata.isRecording || metagen_comp.record_everyone)) { continue; } UniLog.Log("Starting voice interaction for user " + user.UserName); RefID user_id = user.ReferenceID; current_users_ids.Add(user_id.ToString()); AvatarAudioOutputManager comp = user.Root.Slot.GetComponentInChildren <AvatarAudioOutputManager>(); AudioOutput audio_output = comp.AudioOutput.Target; audio_outputs[user_id] = audio_output; isRecording[user_id] = false; if (audio_outputs[user_id] == null) { UniLog.Log("OwO: Audio output for user " + user_id.ToString() + " is null!"); } else { UniLog.Log("Sample rate"); UniLog.Log(metagen_comp.Engine.AudioSystem.Connector.SampleRate.ToString()); } } isInteracting = true; }