public Byte[] GetClipData() { if (_audio.clip == null) { return(null); } float[] samples = new float[_audio.clip.samples]; _audio.clip.GetData(samples, 0); float[] compressSamples = null; bool isRecord = false; for (int i = samples.Length - 1; i >= 0; i--) { if (isRecord) { compressSamples[i] = samples[i]; } else { if (samples[i] == 0 && !isRecord) { continue; } else { isRecord = true; compressSamples = new float[i + 1]; compressSamples[i] = samples[i]; } } } samples = null; samples = compressSamples; Byte[] outData = new byte[samples.Length * 2]; for (int i = 0; i < samples.Length; i++) { Int16 temshort = (Int16)(samples[i] * INT16_SCALE); Byte[] temdata = BitConverter.GetBytes(temshort); outData[i * 2] = temdata[0]; outData[i * 2 + 1] = temdata[1]; } if (outData == null || outData.Length <= 0) { return(null); } Debug.Log("out data:" + outData.Length); Byte[] compressData = SevenZipCompress.Compress(outData); Debug.Log("compress data" + compressData.Length); return(compressData); }