private void onSampleBuffer(AudioEvent audioEvent, AndroidJavaObject frame, int sampleRate, int channelCount) { var format = new Format { sampleRate = sampleRate, channelCount = channelCount }; float[] sampleBuffer = null; var timestamp = 0L; if (audioEvent == AudioEvent.OnSampleBuffer) { sampleBuffer = AndroidJNI.FromFloatArray(frame.Get <AndroidJavaObject>("sampleBuffer").GetRawObject()); timestamp = frame.Get <long>("timestamp"); } try { callback(audioEvent, sampleBuffer, timestamp, format); } catch (Exception ex) { Debug.LogError("NatMic Error: Sample buffer callback raised exception: " + ex); } }