unity 录音功能主要通过,Microphone这个类来完成。使用这个类自然可以跨平台,不用调用平台本地代码处理。
private static AudioClip clip;
private static int maxRecordTime = 10;
private static int samplingRate = 12000;
public static bool TryStartRecording()
{
try
{
Microphone.End(null);
clip = Microphone.Start(null, false, maxRecordTime, samplingRate);
}
catch(Exception e)
{
return false;
}
return true;
}
Start开始录音,name默认不写就是寻找默认设备。samplingRate是采样率长度,越长音质越好,录音文件越大。Start之前调用End是为了结束可能正在进行的录音。
public static void EndRecording(out int length, out AudioClip outClip)
{
int lastPos = Microphone.GetPosition(null);
if (Microphone.IsRecording(null))
{
length = lastPos / samplingRate;
}
else
{
length = maxRecordTime;
}
Microphone.End(n