Exemplo n.º 1
0
        public static AudioClip ToAudioClip(byte[] audioData, string fileName)
        {
            using (MemoryStream fs = new MemoryStream(audioData))
            {
                using (BinaryReader reader = new BinaryReader(fs))
                {
                    GetChunk(fs, reader); // RIFF chunk
                    FmtChunk formatChunk = (FmtChunk)GetChunk(fs, reader);

                    while (fs.Position < fs.Length)
                    {
                        Chunk chunk = GetChunk(fs, reader);
                        if (chunk.Ident == ChunkType.Data)
                        {
                            DataChunk dc   = (DataChunk)chunk;
                            float[]   data = dc.GetAudioData(formatChunk);
                            AudioClip clip = AudioClip.Create(fileName, data.Length, 1, formatChunk.Frequency, false);
                            clip.SetData(data, 0);
                            return(clip);
                        }
                    }
                }
            }

            return(null);
        }