最近在做聊天室 但是不想接入别人的sdk就自己写了个语音消息的发送
这里只讲思路 首先用 foreach (var device in Microphone.devices) 取到语音输入设备
然后用官方的Microphone.Start("", false, 10, 8000);录制语音 因为我做的包括手机 所以一般是10秒的8000采集
录出来的是AudioClip
然后这里把录出来的文件转换成byte[] 最后转成字符串进行传输
float[] floatData = new float[aud.clip.samples * aud.clip.channels];
aud.clip.GetData(floatData, 0);
byte[] outData = new byte[floatData.Length * 4];
Buffer.BlockCopy(floatData, 0, outData, 0, outData.Length);
string str = Convert.ToBase64String(outData );
接下来吧收到的文件解开进行播放.或者自己创建butt播放
JsonData jsonData = JsonMapper.ToObject(date.data.ToString());
byte[] bytes = Convert.FromBase64String(string.Format("{0}", jsonData["audio"]));
float[] samples = new float[bytes.Length / 4];
Buffer.BlockCopy(bytes, 0, samples, 0, bytes.Length);
aud.clip = AudioClip.Create("playRecordClip", samples.Length, 1,8000, false);
aud.clip.SetData(samples, 0);
aud.Play();