AudioClip recordClip;
void StartRecordMicrophone()
{
recordClip = Microphone.Start("Built-in Microphone", true, 100, 44100);
}
void StopRecordMicrophone()
{
int lastTime = Microphone.GetPosition(null);
if (lastTime == 0)
return;
else
{
Microphone.End(Microphone.devices[0]);
float[] samples = new float[recordClip.samples];
recordClip.GetData(samples, 0);
float[] cutSamples = new float[lastTime];
Array.Copy(samples, cutSamples, cutSamples.Length - 1);
recordClip = AudioClip.Create("Notice", cutSamples.Length, 1, 44100, false);
recordClip.SetData(cutSamples, 0);
}
}
Microphone.Start으로 하면 길이를 정하고 녹음이 됨
그래서 Microphone.End 했을때 길이까지만 녹음되게 함
혹시 다른 방법있으시면 댓글 남겨주세요.
'프로그래밍' 카테고리의 다른 글
C# XML 읽어오기 (0) | 2020.12.01 |
---|---|
C# DateTime 포맷 (0) | 2020.09.02 |
C# 문자열로 변수이름 가져오기 (0) | 2020.04.19 |
C# 문자열을 int 리스트 / int 배열로 변환하기 (0) | 2020.02.28 |
유니티 UI 클릭했을 때, 클릭된 위치 값 가져오기 (0) | 2019.11.07 |