Фрагмент Android MediaRecorder, как сохранить тот же экземпляр - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть класс MediaRecorder, который расширяет Fragment.Внутри этого class я создал методы для set up the MediaRecorder, а также методы для start и stop записи.

Я попытался создать onTouch с Fragment и использовать start/stop внутри фрагмента на нажатиях button, и это сработало.Но когда я удалил onTouch и попытался использовать методы start/stop из другого класса, я получил NullPointerException.Точнее, он не дал error при нажатии start, но дал error при нажатии stop!

После отладки startRecordingVideo все 3 -> (mCameraDevice, mTextureView, mPreviewSize)null, поэтому он даже не начинает запись, и во время stopRecordingVideo mMediaRecorder также равен нулю.

Вот часть, где я пытаюсь использовать MediaRecorderFragment внутри другого класса:

private Camera2VideoFragment camera2VideoFragment;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.song_player);
    //Camera2Video
    camera2VideoFragment = new Camera2VideoFragment();

    //Start Camera Preview
    getFragmentManager().beginTransaction()
            .replace(R.id.container, Camera2VideoFragment.newInstance())
            .commit();



    playRecordButton.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View view, MotionEvent motionevent) {
             final int action = motionevent.getAction();
             if (action == MotionEvent.ACTION_DOWN) {

                //Start recording video
                startRecordingVideo();

           } else if (action == MotionEvent.ACTION_UP) {

                //Stop Recording Video
                stopRecordingVideo();

           }
            return false;
        }
    }); 
}   

private void startRecordingVideo(){
    camera2VideoFragment.startVideoRecording();
}

private void stopRecordingVideo(){
    camera2VideoFragment.stopVideoRecording();
}

MediaRecorderFragment можно найти здесь . (Этот класс слишком длинный для публикации здесь).

Мой вопрос: почему я получаю NullPointerException икак я могу заставить это fragment работать от другого class.

...