Xamarin.Forms.Conference.WebRTC.Droid.Opus.Encoder.Encode C# (CSharp) Method

Encode() public method

public Encode ( byte data, int index, int length ) : byte[]
data byte
index int
length int
return byte[]
        public byte[] Encode(byte[] data, int index, int length)
        {
            IntPtr dataPtr = JNIEnv.NewArray(data);
            try
            {
                return (byte[])JNIEnv.GetArray(OpusLibrary.Java_aopus_OpusLibrary_encoderEncode(JNIEnv.Handle, IntPtr.Zero, State, dataPtr, index, length), JniHandleOwnership.TransferLocalRef, typeof(byte));
            }
            finally
            {
                JNIEnv.DeleteLocalRef(dataPtr);
            }
        }
    }

Usage Example

コード例 #1
0
        /// <summary>
        /// Encodes a frame.
        /// </summary>
        /// <param name="frame">The frame.</param>
        /// <returns></returns>
        public override byte[] Encode(AudioBuffer frame)
        {
            if (_Encoder == null)
            {
                _Encoder         = new Encoder(ClockRate, Channels, PacketTime);
                _Encoder.Quality = 1.0;
                _Encoder.Bitrate = 125;
            }

            byte[] data; int index; int length;
            var    echoCanceller = EchoCanceller;

            if (echoCanceller == null)
            {
                data   = frame.Data;
                index  = frame.Index;
                length = frame.Length;
            }
            else
            {
                data   = echoCanceller.capture(frame);
                index  = 0;
                length = data.Length;
            }

            return(_Encoder.Encode(data, index, length));
        }