Unhandled Exception: Instance of '_RecorderRunningException' flutter_sound_lite

323 Views Asked by At

I am using flutter sound lite library what I wanna do is to record the sound and then play the recorded sound so i wrote the following code

importing the library

import 'package:flutter_sound_lite/public/flutter_sound_recorder.dart';

Class to record the sound start_recorder.dart

class SoundRecorder{
  FlutterSoundRecorder? _audioRecorder;
  bool _isRecorderInitialised= false;
  bool isRecording=false;
  
  //init method
  Future init() async{
    _audioRecorder= FlutterSoundRecorder();
    final status= await Permission.microphone.request();
    if(status!= PermissionStatus.granted){
      throw RecordingPermissionException('Microphone permission not granted');
    }
    await _audioRecorder!.openAudioSession();
    _isRecorderInitialised=true;
  }

  //dispose method

  void dispose(){
    if(!_isRecorderInitialised) return;
    _audioRecorder!.closeAudioSession();
    _audioRecorder=null;
    _isRecorderInitialised=false;
  }

  //record method to record sound
  Future _record() async{
    if(!_isRecorderInitialised) return;
    try{
      await _audioRecorder!.startRecorder(toFile:pathToSaveAudio );
    }
    catch (e)
    {
      throw e;
    }


  }
  
  //stop method to stop recording sound

  Future _stop() async {
    if(!_isRecorderInitialised) return;
    await _audioRecorder!. startRecorder();

  }
  Future toggleRecording() async{
    if(_audioRecorder!.isStopped){
      isRecording=true;
      await _record();
    }
    else{
      isRecording=false;
      await _stop();
    }
  }


}

Main.dart

now in main state elevatedButton is a child of a container

Container(
            child:  ElevatedButton.icon(
              style: ElevatedButton.styleFrom(
                  minimumSize: Size(175, 50),
                  primary: primary,
                  onPrimary: onPrimary
              ),
              icon: Icon(icon),
              label: Text(
                text,
                style: TextStyle(fontSize: 16,fontWeight: FontWeight.bold),
              ),
              onPressed: () async{
                final isRecording= await recorder.toggleRecording();
                setState(() {

                });
              },

            ),

          )

when i start recorder it turn button red and icon to stop icon but when i click back it doesnt get into actual position and in log it gives an error Unhandled Exception: Instance of '_RecorderRunningException'

logs

V/AutofillManager(26337): requestHideFillUi(null): anchor = null
I/flutter (26337): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (26337): │ #0   FlutterSoundRecorder.startRecorder (package:flutter_sound_lite/public/flutter_sound_recorder.dart:635:13)
I/flutter (26337): │ #1   SoundRecorder._record (package:speech_app/api/start_recorder.dart:27:29)
I/flutter (26337): ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
I/flutter (26337): │  FS:---> startRecorder 
I/flutter (26337): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (26337): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (26337): │ #0   FlutterSoundRecorder._startRecorder (package:flutter_sound_lite/public/flutter_sound_recorder.dart:659:13)
I/flutter (26337): │ #1   FlutterSoundRecorder.startRecorder.<anonymous closure> (package:flutter_sound_lite/public/flutter_sound_recorder.dart:637:13)
I/flutter (26337): ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
I/flutter (26337): │  FS:---> _startRecorder.
I/flutter (26337): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
D/AudioRecordExtImpl(26337): AudioRecordExtImpl init
D/AudioRecordExtImpl(26337): audiorecordTest
D/AudioRecord(26337): set(): inputSource 0, sampleRate 16000, format 0x1, channelMask 0x10, frameCount 1280, notificationFrames 0, sessionId 0, transferType 0, flags 0, identity AttributionSourceState{pid: -1, uid: 10375, packageName: com.speech.app.speech_app, attributionTag: (null), token: , renouncedPermissions: [], next: []}uid -1, pid -1
D/AudioRecord(26337): set(): mSessionId 0
D/AudioRecord(26337): start(2854): sync event 0 trigger session 0
I/System.out(26337): ---> writeAudioDataToFile
W/System.err(26337): java.io.FileNotFoundException: audio_example.wav: open failed: EROFS (Read-only file system)
W/System.err(26337):    at libcore.io.IoBridge.open(IoBridge.java:574)
W/System.err(26337):    at java.io.FileOutputStream.<init>(FileOutputStream.java:236)
W/System.err(26337):    at java.io.FileOutputStream.<init>(FileOutputStream.java:125)
W/System.err(26337):    at com.dooboolab.TauEngine.FlautoRecorderEngine.writeAudioDataToFile(FlautoRecorderEngine.java:70)
W/System.err(26337):    at com.dooboolab.TauEngine.FlautoRecorderEngine._startRecorder(FlautoRecorderEngine.java:247)
W/System.err(26337):    at com.dooboolab.TauEngine.FlautoRecorder.startRecorder(FlautoRecorder.java:300)
W/System.err(26337):    at com.dooboolab.fluttersound.FlutterSoundRecorder.startRecorder(FlutterSoundRecorder.java:261)
W/System.err(26337):    at com.dooboolab.fluttersound.FlutterSoundRecorderManager.onMethodCall(FlutterSoundRecorderManager.java:106)
W/System.err(26337):    at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:262)
W/System.err(26337):    at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:295)
W/System.err(26337):    at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:319)
W/System.err(26337):    at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(Unknown Source:12)
W/System.err(26337):    at android.os.Handler.handleCallback(Handler.java:938)
W/System.err(26337):    at android.os.Handler.dispatchMessage(Handler.java:99)
W/System.err(26337):    at android.os.Looper.loopOnce(Looper.java:233)
W/System.err(26337):    at android.os.Looper.loop(Looper.java:344)
W/System.err(26337):    at android.app.ActivityThread.main(ActivityThread.java:8212)
W/System.err(26337):    at java.lang.reflect.Method.invoke(Native Method)
W/System.err(26337):    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:584)
W/System.err(26337):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1034)
W/System.err(26337): Caused by: android.system.ErrnoException: open failed: EROFS (Read-only file system)
W/System.err(26337):    at libcore.io.Linux.open(Native Method)
W/System.err(26337):    at libcore.io.ForwardingOs.open(ForwardingOs.java:563)
W/System.err(26337):    at libcore.io.BlockGuardOs.open(BlockGuardOs.java:274)
W/System.err(26337):    at libcore.io.ForwardingOs.open(ForwardingOs.java:563)
W/System.err(26337):    at android.app.ActivityThread$AndroidOs.open(ActivityThread.java:8094)
W/System.err(26337):    at libcore.io.IoBridge.open(IoBridge.java:560)
W/System.err(26337):    ... 19 more
I/flutter (26337): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (26337): │ #0   FlutterSoundRecorder.startRecorderCompleted (package:flutter_sound_lite/public/flutter_sound_recorder.dart:249:13)
I/flutter (26337): │ #1   MethodChannelFlutterSoundRecorder.channelMethodCallHandler (package:flutter_sound_platform_interface/method_channel_flutter_sound_recorder.dart:74:22)
I/flutter (26337): ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
I/flutter (26337): │  ---> startRecorderCompleted: true
I/flutter (26337): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (26337): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (26337): │ #0   FlutterSoundRecorder.startRecorderCompleted (package:flutter_sound_lite/public/flutter_sound_recorder.dart:258:13)
I/flutter (26337): │ #1   MethodChannelFlutterSoundRecorder.channelMethodCallHandler (package:flutter_sound_platform_interface/method_channel_flutter_sound_recorder.dart:74:22)
I/flutter (26337): ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
I/flutter (26337): │  <--- startRecorderCompleted: true
I/flutter (26337): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (26337): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (26337): │ #0   FlutterSoundRecorder._startRecorder (package:flutter_sound_lite/public/flutter_sound_recorder.dart:750:13)
I/flutter (26337): │ #1   <asynchronous suspension>
I/flutter (26337): ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
I/flutter (26337): │  FS:<--- _startRecorder.
I/flutter (26337): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (26337): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (26337): │ #0   FlutterSoundRecorder.startRecorder (package:flutter_sound_lite/public/flutter_sound_recorder.dart:647:13)
I/flutter (26337): │ #1   <asynchronous suspension>
I/flutter (26337): ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
I/flutter (26337): │  FS:<--- startRecorder 
I/flutter (26337): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
0

There are 0 best solutions below