Android
[Android] MediaRecorder 녹화중지 -1007 에러
SUN5066
2021. 4. 13. 15:10
반응형
mCameraTexture?.setDefaultBufferSize(mImageDimension!!.width, mImageDimension!!.height)
녹화된 파일을 저장할때
MediaRecorder VideoSize 크기가 잘못되었을때 발생하는 현상.
해결법은 카메라 미리보기 화면을 셋팅하는 함수에서
private var mImageDimension: Size? = null
private var mVideoDimension: Size? = null
private fun setPreview() {
val characteristics = mCameraManager.getCameraCharacteristics(mCameraId!!)
val streamConfigurationMap = characteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP)
mImageDimension = streamConfigurationMap!!.getOutputSizes(SurfaceTexture::class.java)[0]
mVideoDimension = streamConfigurationMap!!.getOutputSizes(MediaRecorder::class.java)[0]
...
}
이렇게 전역변수에 설정해주고,
MediaRecorder 를 셋팅하는 함수에서
private fun setUpMediaRecorder() {
var file = File(Environment.getExternalStorageDirectory().toString() + "/videso.mp4")
mMediaRecorder = MediaRecorder().apply {
setAudioSource(MediaRecorder.AudioSource.MIC)
setVideoSource(MediaRecorder.VideoSource.SURFACE)
setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH))
setVideoSize(mVideoDimension!!.width, mVideoDimension!!.height)
setOutputFile(file.absolutePath)
try {
prepare()
} catch (e: Exception) {
e.printStackTrace()
}
}
}
이렇게 해주고,
녹화 시작 함수에 이렇게 셋팅해주자
mCameraTexture?.setDefaultBufferSize(mImageDimension!!.width, mImageDimension!!.height)
반응형