Ich habe ein Problem. Ich benutze sqlite um Sounds zu speichern. Ich erhalte Ton in Byte []. konvertieren Dann byte [] schweben []:create AudioClip von Byte []
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);
Dann Audioclip erstellen:
AudioClip audioClip = AudioClip.Create("testSound", f.Length, 1, 44100, false, false);
audioClip.SetData(f, 0);
Und dann spielen
AudioSource.PlayClipAtPoint(audioClip, new Vector3(100, 100, 0), 1.0f);
Aber Ergebnis ist Lärm :(
Kann sein, in die andere Richtung Sie die Quelle des Problems ermitteln helfen würde? Wenn ich das debugging, würde ich die inverse Konvertierung von audioClip.GetData in Byte-Array erstellen. Wenn Sie das gleiche Sample in Unity laden und diese umgekehrte Konvertierung verwenden, erhalten Sie möglicherweise einen Hinweis darauf, was hier falsch läuft. –
Danke, ich wollte es versuchen) Ich werde das tun. Es ist vielleicht eine andere Lösung - speichern Bytes [] in die Datei, und verwenden Sie dann WWW-Instanz Audioclip zu laden, aber ich mag es nicht :) – Igor