samedi 11 avril 2020

Run code from checkbox if checked when click on button or not run if not checked

How to make sure when the checkbox is checked that it does not start recording until the button is clicked. So you have to check and click the button to start recording, if it is not checked on checkbox and click the button is not supposed to record audio. What I did, if the checkbox was checked, start recording immediately. I need, if the checkbox is checked and the button clicks, it starts to record, when it clicks again the button should stop recording.

 toggleButton.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView,
                                     boolean isChecked) {

            if (isChecked) {

                //Start Recording Audio

                chkIos.isChecked();
                // isChecked = true;

            } else {

                //Stop Recording Audio
                onStop();
                // isChecked = false;

            }

        }
    });


public void addListenerOnChkIos() {

    chkIos = (CheckBox) findViewById(R.id.SaveAudio);

    chkIos.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            //is chkIos checked?
            if (((CheckBox) v).isChecked()) {
                startRecording();
                Toast.makeText(VoiceRecognitionActivity.this,
                        "My Message", Toast.LENGTH_LONG).show();

            }

        }
    });

}

private void stopRecording() {

    //Stop media recorder and set it to null for further use to record new audio
    mediaRecorder.stop();
    mediaRecorder.release();
    mediaRecorder = null;
}

private void startRecording() {

    //Get app external directory path
    String recordPath = getBaseContext().getExternalFilesDir("/").getAbsolutePath();

    //initialize filename variable with date and time at the end to ensure the new file wont overwrite previous file
    recordFile = "File" + ".mp3";


    //Setup Media Recorder for recording
    mediaRecorder = new MediaRecorder();
    mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
    mediaRecorder.setOutputFile(recordPath + "/" + recordFile);
    mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);

    try {
        mediaRecorder.prepare();
    } catch (IOException e) {
        e.printStackTrace();
    }

    //Start Recording
    mediaRecorder.start();
}

@Override
public void onStop() {
    super.onStop();
    if(isRecording){
        stopRecording();
    }
}



Aucun commentaire:

Enregistrer un commentaire