Ho un problema. Io uso sqlite per memorizzare suoni. Ne ricevo il suono in byte []. poi convertire byte [] a stare a galla []:crea AudioClip dal 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);
Quindi creare AudioClip:
AudioClip audioClip = AudioClip.Create("testSound", f.Length, 1, 44100, false, false);
audioClip.SetData(f, 0);
E poi riprodurlo
AudioSource.PlayClipAtPoint(audioClip, new Vector3(100, 100, 0), 1.0f);
Ma risultato è il rumore :(
L'altra direzione potrebbe aiutarti a determinare l'origine del problema? Se stavo eseguendo il debug di questo, vorrei creare la conversione inversa, da audioClip.GetData a array di byte. Se caricerai lo stesso identico campione in Unity e userai questa conversione inversa, potresti dare un suggerimento a cosa sta andando storto qui. –
Grazie, volevo provarlo) Lo farò. C'è forse un'altra soluzione: salvare i byte [] nel file, quindi utilizzare l'istanza WWW per caricare AudioClip, ma non mi piace :) – Igor