OnTouchListener не запускается - PullRequest
0 голосов
/ 12 июля 2020

Я пытаюсь создать диктофон в моем проекте, все работает нормально. Но когда я попытался записать, нажав кнопку, приложение просто перезапустилось без какого-либо журнала. Мы будем очень признательны, если у кого-нибудь есть такой опыт или идеи, как решить эту проблему.

спасибо

XML код

 <ImageButton
            android:id="@+id/voice_message_recorder"
            android:layout_alignParentBottom="true"
            android:layout_marginBottom="70dp"
            android:layout_centerInParent="true"
            android:layout_width="80dp"
            android:layout_height="120dp"
            android:backgroundTint="@color/colorGrayBack"
            android:src="@drawable/microphone1"
            android:visibility="gone"/>

java код:

messageRecorderBtn.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    switch (event.getAction()) {
                        case MotionEvent.ACTION_DOWN:
                            startRecording();
                            mRecorder.setText("Recording starts");
                            break;
                        case MotionEvent.ACTION_UP:
                            stopRecording();
                            mRecorder.setText("Recording stops");
                            sendAudioMessage();
                            break;
                    }
                    return true;
                }
            });
    
    
        }
    
    
        //// send audio
    
        private void startRecording() {
            recorder = new MediaRecorder();
            recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
            recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
            recorder.setOutputFile(fileName);
            recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
    
            try {
                recorder.prepare();
            } catch (IOException e) {
                Log.e(LOG_TAG, "prepare() failed");
            }
    
            recorder.start();
        }
    
        private void stopRecording() {
            recorder.stop();
            recorder.release();
            recorder = null;
        }
    
    
    
            />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...