从字节 [] 创建音频剪辑 [英] create AudioClip from byte[]
本文介绍了从字节 [] 创建音频剪辑的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有问题.我使用 sqlite 来存储声音.我在字节 [] 中从中得到声音.然后将 byte[] 转换为 float[]:
I have problem. I use sqlite to store sounds. I get sound from it in byte[]. Then convert byte[] to float[]:
private float[] ConvertByteToFloat(byte[] array)
{
float[] floatArr = new float[array.Length / 4];
for (int i = 0; i < floatArr.Length; i++)
{
if (BitConverter.IsLittleEndian)
Array.Reverse(array, i * 4, 4);
floatArr[i] = BitConverter.ToSingle(array, i * 4);
}
return floatArr;
}
float[] f = ConvertByteToFloat(bytes);
然后创建音频剪辑:
AudioClip audioClip = AudioClip.Create("testSound", f.Length, 1, 44100, false, false);
audioClip.SetData(f, 0);
然后播放
AudioSource.PlayClipAtPoint(audioClip, new Vector3(100, 100, 0), 1.0f);
但结果是噪音:(.
推荐答案
floatArr需要缩放到-1.0f到1.0f范围内.
floatArr needs to be scaled to be within the range of -1.0f to 1.0f.
floatArr[i] = BitConverter.ToSingle(array, i*4) / 0x80000000;
这篇关于从字节 [] 创建音频剪辑的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文