Audio recorder invalid operation on wearable

Audio recorder invalid operation on wearable

BY 10 May 2017 Native Application Development

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

Written by