NateRickard / Plugin.AudioRecorder

Audio Recorder plugin for Xamarin and Windows
MIT License
164 stars 68 forks source link

Use custom stream to record audio #57

Open Haarmees opened 3 years ago

Haarmees commented 3 years ago

Hello, This code change allows you to use your own stream when recording audio. The StartRecording function now accepts a stream object:

public async Task<Task<string>> StartRecording (Stream recordStream = null, bool writeHeaders = false)

If recordStream is null the old behavior is used where a file is written on the device. The writeHeaders flag can be used to write the WAV headers to the beginning of the stream.

Example usage:

var memoryStream = new MemoryStream();
var audioRecordTask = await recorder.StartRecording (memoryStream, true);

I added this change for my scenario where I don't want data to be stored on the device or use an internal memoryStream like #48. This change will also allow scenarios mentioned in #12 and #13 by reusing the stream. It also supports the scenario of #48, using a memory stream instead of filestream.