void EditStateClicked() { //if mic is on, cannot cancel if (Microphone.IsRecording(null)) { return; } //cancel edit, switch back to default state SoundboardManager.ChangeState(SoundboardManager.SoundboardState.Default); }
void EditStateTouchUp() { //if is not recording, return if (!Microphone.IsRecording(null)) { return; } //change back the color of the inner circle innerCircle.color = transparentColor; //get mic position (in samples) int lastTime = Microphone.GetPosition(null); //end mic Microphone.End(null); //if too short, return if (lastTime == 0) { return; } //get the full samples and store them in an array float[] samples = new float[_audioSouce.clip.samples]; _audioSouce.clip.GetData(samples, 0); //store the clipped samples to a new array float[] clipSamples = new float[lastTime]; Array.Copy(samples, clipSamples, clipSamples.Length); //create a new AudioClip and set the data from the clipped samples _audioSouce.clip = AudioClip.Create("new", clipSamples.Length, 1, 44100, false); _audioSouce.clip.SetData(clipSamples, 0); //save (serialize) AudioClipq to local disk AudioDataSaver.SaveAudioClipToDisk(_audioSouce.clip, slotNum.ToString() + ".dat"); //change state SoundboardManager.ChangeState(SoundboardManager.SoundboardState.Default); }
void DefaultStateClicked() { //change to edit state SoundboardManager.ChangeState(SoundboardManager.SoundboardState.Edit); }