System.IO.MemoryStream.Seek C# (CSharp) Method

Seek() public method

public Seek ( long offset, SeekOrigin loc ) : long
offset long
loc SeekOrigin
return long
        public override long Seek(long offset, SeekOrigin loc)
        {
            if (!_isOpen)
            {
                throw new ObjectDisposedException(null, SR.ObjectDisposed_StreamClosed);
            }
            if (offset > MemStreamMaxLength)
            {
                throw new ArgumentOutOfRangeException(nameof(offset), SR.ArgumentOutOfRange_StreamLength);
            }

            switch (loc)
            {
                case SeekOrigin.Begin:
                    {
                        int tempPosition = unchecked(_origin + (int)offset);
                        if (offset < 0 || tempPosition < _origin)
                        {
                            throw new IOException(SR.IO_IO_SeekBeforeBegin);
                        }

                        _position = tempPosition;
                        break;
                    }
                case SeekOrigin.Current:
                    {
                        int tempPosition = unchecked(_position + (int)offset);
                        if (unchecked(_position + offset) < _origin || tempPosition < _origin)
                        {
                            throw new IOException(SR.IO_IO_SeekBeforeBegin);
                        }

                        _position = tempPosition;
                        break;
                    }
                case SeekOrigin.End:
                    {
                        int tempPosition = unchecked(_length + (int)offset);
                        if (unchecked(_length + offset) < _origin || tempPosition < _origin)
                        {
                            throw new IOException(SR.IO_IO_SeekBeforeBegin);
                        }

                        _position = tempPosition;
                        break;
                    }
                default:
                    throw new ArgumentException(SR.Argument_InvalidSeekOrigin);
            }

            Debug.Assert(_position >= 0, "_position >= 0");
            return _position;
        }

Usage Example

Beispiel #1
1
        public void OnPreviewFrame(byte[] data, Android.Hardware.Camera camera)
        {
            var paras       = camera.GetParameters();
            var imageformat = paras.PreviewFormat;

            if (imageformat == Android.Graphics.ImageFormatType.Nv21)
            {
                Android.Graphics.YuvImage img = new Android.Graphics.YuvImage(data,
                                                                              imageformat, paras.PreviewSize.Width, paras.PreviewSize.Height, null);

                if (time <= DateTime.Now)
                {
                    using (System.IO.MemoryStream outStream = new System.IO.MemoryStream())
                    {
                        bool didIt = img.CompressToJpeg(new Rect(0, 0, paras.PreviewSize.Width, paras.PreviewSize.Height), 75, outStream);
                        outStream.Seek(0, System.IO.SeekOrigin.Begin);
                        //     Bitmap newBM = BitmapFactory.DecodeStream(outStream);

                        NetProcess.SendRoomMessage(outStream.ToArray());
                        time = DateTime.Now.AddMilliseconds(300);
                    }
                }
            }
        }
All Usage Examples Of System.IO.MemoryStream::Seek