Запускать код из флажка, если отмечен при нажатии на кнопку, или не запускаться, если не установлен - PullRequest
0 голосов
/ 11 апреля 2020

Как убедиться, что при установленном флажке запись не начинается, пока кнопка не нажата. Таким образом, вы должны проверить и нажать кнопку, чтобы начать запись, если она не включена, и кнопка не должна записывать звук. Что я сделал, если флажок был установлен, начать запись немедленно. Мне нужно, если флажок установлен и кнопка щелкает, она начинает запись, при повторном нажатии кнопка должна прекратить запись.

 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();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...