[Flutter Plugin] Provides a tool to get the microphone input as 8 or 16 bit PCM Stream.
As Flutter still lacks some functionality, this plugin aims to provide the possibility to easily get an audio stream from the microphone of mobile devices.
The plugin provides one method:
Future<Stream<UInt8List>> MicStream.microphone({options})
Listening to this stream starts the audio recorder while cancelling the subscription stops the stream.
The plugin also provides information about some properties:
Future<double> sampleRate = await MicStream.sampleRate;
Future<int> bitDepth = await MicStream.bitDepth;
Future<int> bufferSize = await MicStream.bufferSize;
Make sure you have microphone recording permissions enabled for your project. To do so, add this line to the AndroidManifest.xml:
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
In the Info.plist:
<key>NSMicrophoneUsageDescription</key>
<string>Microphone access required</string>
For MacOS:
Open macos/Runner.xcworkspace click Runner -> Signing & Capabilities -> Check "Audio Input"
// Init a new Stream
Stream<List<int>> stream = await MicStream.microphone(sampleRate: 44100);
// Start listening to the stream
StreamSubscription<List<int>> listener = stream.listen((samples) => print(samples));
// Cancel the subscription
listener.cancel()
Note: This plugin is still under development, and some APIs might not be available yet. Feedback and Pull Requests are most welcome!