我有一个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
可以是found here.(此课程太长,无法在此处发布)。
我的问题是,为什么我会获得NullPointerException
以及如何让fragment
从另一个class
开始工作。