Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wangyng/better_audio_capture
A simple Audio Capture for Flutter.
https://github.com/wangyng/better_audio_capture
Last synced: about 2 months ago
JSON representation
A simple Audio Capture for Flutter.
- Host: GitHub
- URL: https://github.com/wangyng/better_audio_capture
- Owner: WangYng
- License: bsd-3-clause
- Created: 2021-04-29T09:38:22.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-01-03T07:54:27.000Z (about 1 year ago)
- Last Synced: 2024-01-03T08:53:50.513Z (about 1 year ago)
- Language: Objective-C
- Size: 98.6 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# better_audio_capture
A simple audio capture for Flutter.
## Install Started
1. Add this to your **pubspec.yaml** file:
```yaml
dependencies:
better_audio_capture: ^0.1.1
```2. Install it
```bash
$ flutter packages get
```## Normal usage
```dart
CupertinoButton(
child: Text("start capture"),
onPressed: () async {
bytesBuilder.clear();// request audio session
final session = await AudioSession.instance;
await session.configure(AudioSessionConfiguration(
avAudioSessionCategory: AVAudioSessionCategory.record,
avAudioSessionMode: AVAudioSessionMode.measurement,
avAudioSessionRouteSharingPolicy: AVAudioSessionRouteSharingPolicy.defaultPolicy,
avAudioSessionSetActiveOptions: AVAudioSessionSetActiveOptions.none,
));if (await session.setActive(true)) {
subscription = betterAudioCapture?.pcmStream.listen((event) {
bytesBuilder.add(event);
print("recording");
});betterAudioCapture?.init(sampleRate: 16000, channelCount: 1);
betterAudioCapture?.startCapture();
}
});
},
),CupertinoButton(
child: Text("stop capture"),
onPressed: () async {
subscription?.cancel();
betterAudioCapture.stopCapture();
betterAudioCapture.dispose();Directory tempDir = await getTemporaryDirectory();
File waveFile = File(tempDir.path + "/record.wav");
if (waveFile.existsSync()) {
waveFile.deleteSync();
}IOSink waveFileSink = waveFile.openWrite();
waveFileSink.add(BetterAudioCapture.waveHeader(bytesBuilder.length));
waveFileSink.add(bytesBuilder.takeBytes());
await waveFileSink.close();
},
),
```## Feature
- [x] Audio capture by microphone.
- [x] Set audio stream sampleRate.
- [x] Set audio stream channelNumber.