private void OnAudioFilterRead(int id, float[] data, AudioOutput.AudioChannels audioChannel)
        {
            var samplesCount = _wrapper.NativeGetAudioSamples(IntPtr.Zero, 0, audioChannel);

            if (samplesCount >= data.Length)
            {
                if (!_audioDataHandle.IsAllocated)
                {
                    _audioDataHandle = GCHandle.Alloc(data, GCHandleType.Pinned);
                }

                _wrapper.NativeGetAudioSamples(_audioDataHandle.AddrOfPinnedObject(), data.Length, audioChannel);
                _audioManager.SetOutputData(id, data);
            }

            if (_audioManager.OutputsDataUpdated)
            {
                _wrapper.NativeClearAudioSamples(data.Length);
                _audioManager.ResetOutputsData();
            }
        }