|
|
|
|
@ -24,7 +24,6 @@ class _RecordSoundState extends State<RecordSound> {
|
|
|
|
|
FlutterSoundRecorder _myRecorder = FlutterSoundRecorder();
|
|
|
|
|
bool _recorderIsOpened = false;
|
|
|
|
|
bool _recording = false;
|
|
|
|
|
bool _fastTab = false;
|
|
|
|
|
String _record;
|
|
|
|
|
Artboard _rive;
|
|
|
|
|
|
|
|
|
|
@ -69,13 +68,14 @@ class _RecordSoundState extends State<RecordSound> {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_startRecording() async {
|
|
|
|
|
_fastTab = false;
|
|
|
|
|
// await Permission.camera
|
|
|
|
|
PermissionStatus status = await Permission.microphone.request();
|
|
|
|
|
if (!status.isGranted) {
|
|
|
|
|
PermissionStatus status = await Permission.microphone.request();
|
|
|
|
|
Fluttertoast.showToast(msg: "Permission Denied");
|
|
|
|
|
return;
|
|
|
|
|
if (!status.isGranted) {
|
|
|
|
|
Fluttertoast.showToast(msg: "Permission Denied");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
_rive.addController(SimpleAnimation('recording'));
|
|
|
|
|
if (!_recorderIsOpened) {
|
|
|
|
|
@ -91,7 +91,6 @@ class _RecordSoundState extends State<RecordSound> {
|
|
|
|
|
|
|
|
|
|
_stopRecording() async {
|
|
|
|
|
if (!_recording) {
|
|
|
|
|
_fastTab = true;
|
|
|
|
|
setState(() {});
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
@ -182,11 +181,6 @@ class _RecordSoundState extends State<RecordSound> {
|
|
|
|
|
color: Colors.transparent,
|
|
|
|
|
child: GestureDetector(
|
|
|
|
|
//key: ValueKey("voice"),
|
|
|
|
|
child: const Padding(
|
|
|
|
|
padding: EdgeInsets.all(12.0),
|
|
|
|
|
child: Icon(Icons.mic),
|
|
|
|
|
),
|
|
|
|
|
|
|
|
|
|
onTapDown: widget.enabled
|
|
|
|
|
? (TapDownDetails details) async {
|
|
|
|
|
_startRecording();
|
|
|
|
|
@ -202,6 +196,8 @@ class _RecordSoundState extends State<RecordSound> {
|
|
|
|
|
_cancelRecording();
|
|
|
|
|
}
|
|
|
|
|
: null,
|
|
|
|
|
//key: ValueKey("voice"),
|
|
|
|
|
child: const Padding(padding: EdgeInsets.all(12.0), child: Icon(Icons.mic)),
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
|