public unsafe bool startRecording() { if (captureDevice == null) { hasRecording = true; captureDevice = SoundPluginInterface.Instance.SoundManager.openCaptureDevice(); if (captureDevice.Valid) { writeStream = File.Open(tempFilePath, FileMode.Create, FileAccess.Write); unsafe { captureDevice.start((byte *buffer, int length) => { byte[] byteBuffer = new byte[length]; for (int i = 0; i < length; ++i) { byteBuffer[i] = buffer[i]; } writeStream.Write(byteBuffer, 0, length); }); } return(true); } else { captureDevice.Dispose(); captureDevice = null; return(false); } } return(false); }
public void Dispose() { StopRecording(); CaptureDevice.DataAvailable -= OnDataAvailable; CaptureDevice.Dispose(); CaptureDevice = null; }
public void stopRecording() { if (captureDevice != null) { captureDevice.Dispose(); writeStream.Dispose(); writeStream = null; captureDevice = null; } }