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