public override bool WriteSound(string path, AudioClip audioClip) { try { FileIOManagerBase.audioHeader[0] = audioClip.get_samples(); FileIOManagerBase.audioHeader[2] = audioClip.get_frequency(); FileIOManagerBase.audioHeader[1] = audioClip.get_channels(); int num = audioClip.get_samples() * audioClip.get_channels(); using (FileStream stream = new FileStream(path, FileMode.Create, FileAccess.Write)) { Buffer.BlockCopy(FileIOManagerBase.audioHeader, 0, FileIOManagerBase.workBufferArray, 0, 12); FileIOManagerBase.CustomEncodeNoCompress(this.CryptKeyBytes, FileIOManagerBase.workBufferArray, 0, 12); stream.Write(FileIOManagerBase.workBufferArray, 0, 12); int num2 = 0; do { int num3 = Math.Min(FileIOManagerBase.audioSamplesWorkArray.Length, num - num2); audioClip.GetData(FileIOManagerBase.audioSamplesWorkArray, num2 / audioClip.get_channels()); for (int i = 0; i < num3; i++) { FileIOManagerBase.audioShortWorkArray[i] = (short)(32767f * FileIOManagerBase.audioSamplesWorkArray[i]); } int count = num3 * 2; Buffer.BlockCopy(FileIOManagerBase.audioShortWorkArray, 0, FileIOManagerBase.workBufferArray, 0, count); FileIOManagerBase.CustomEncodeNoCompress(this.CryptKeyBytes, FileIOManagerBase.workBufferArray, 0, count); stream.Write(FileIOManagerBase.workBufferArray, 0, count); num2 += num3; }while (num2 < num); } return(true); } catch (Exception exception) { Debug.LogError(exception.ToString()); return(false); } }
public override bool WriteEncodeNoCompress(string path, byte[] bytes) { try { using (FileStream stream = new FileStream(path, FileMode.Create, FileAccess.Write)) { int srcOffset = 0; do { int count = Math.Min(0x40000, bytes.Length - srcOffset); Buffer.BlockCopy(bytes, srcOffset, FileIOManagerBase.workBufferArray, 0, count); FileIOManagerBase.CustomEncodeNoCompress(this.CryptKeyBytes, FileIOManagerBase.workBufferArray, 0, count); stream.Write(FileIOManagerBase.workBufferArray, 0, count); srcOffset += count; }while (srcOffset < bytes.Length); } return(true); } catch (Exception exception) { Debug.LogError(exception.ToString()); return(false); } }
public override byte[] EncodeNoCompress(byte[] bytes) { FileIOManagerBase.CustomEncodeNoCompress(this.CryptKeyBytes, bytes, 0, bytes.Length); return(bytes); }