示例#1
0
        private bool Write(ref byte[] buffer, int length, out int writeLength)
        {
            if (buffer.Length < length)
            {
                buffer = new byte[length];
            }

            bool isSuccess = true;
            int  offset    = 0;

            while (offset < length)
            {
                int result = waveStream.Read(buffer, offset, length - offset);
                if (result < 0)
                {
                    if (offset > 0)
                    {
                        Array.Clear(buffer, offset, length - offset);
                        isSuccess = false;
                        break;
                    }
                    else
                    {
                        writeLength = 0;
                        return(false);
                    }
                }
                offset += result;
            }
            writeLength = offset;
            WriteBuffer(buffer, length);
            return(isSuccess);
        }