I need to record voice from mic and save it to file. Recording runs in background service. Everything works fine, until I call recorder_commit, then I get an error
recorder.c: __convert_recorder_error_code(193) > [recorder_commit] INVALID_OPERATION(0xffffffda) : core frameworks error code(0x80000816)
file is created in storage, but it has size of 0 bytes.
this is my code (stripped from logs and error code checking)
Recorder create and start
recorder_create_audiorecorder(&recorder); ... snprintf(filename, sizeof(filename), "%s/recording-%02i%02i%02i_%02i%02i%02i.amr", app_get_data_path(), localtime.tm_year - 100, localtime.tm_mon + 1, localtime.tm_mday, localtime.tm_hour, localtime.tm_min, localtime.tm_sec); ... recorder_set_filename(recorder, filename); recorder_set_file_format(recorder, RECORDER_FILE_FORMAT_AMR); recorder_attr_set_audio_encoder_bitrate(recorder, 28800); recorder_attr_set_audio_device(recorder, RECORDER_AUDIO_DEVICE_MIC); recorder_attr_set_audio_samplerate(recorder, 44100); recorder_attr_set_size_limit(recorder, 1024 * 100); ... recorder_prepare(recorder); recorder_start(recorder);
Recorder stop and destroy
recorder_state_e state; int error_code = recorder_get_state(recorder, &state); if(state == RECORDER_STATE_RECORDING) { //I get error in both of these calls //recorder_pause(recorder); recorder_commit(recorder); } recorder_unprepare(recorder); recorder_destroy(recorder);
I have also set privileges
mediastorage
recorder
Any help would be appreciated, thanks