ghader62
یک شنبه 27 مرداد 1392, 12:32 عصر
سلام دوستان
من توی پروژه ام از سرویس دوربین استفاده میکنم
که کدش بصورت زیر هستش
public boolean starMediaRecording() {
mRecordingStatus = true;
mServiceCamera = Camera.open();
Camera.Parameters params = mServiceCamera.getParameters();
mServiceCamera.setParameters(params);
Camera.Parameters p = mServiceCamera.getParameters();
final List<Size> listSize = p.getSupportedPreviewSizes();
Size mPreviewSize = listSize.get(2);
p.setPreviewSize(mPreviewSize.width, mPreviewSize.height);
p.setPreviewFormat(PixelFormat.YCbCr_420_SP);
mServiceCamera.setParameters(p);
try {
mServiceCamera.setPreviewDisplay(mSurfaceHolder);
mServiceCamera.startPreview();
}
catch (IOException e) {
Log.e(TAG, e.getMessage());
e.printStackTrace();
}
mServiceCamera.unlock();
mMediaRecorder = new MediaRecorder();
mMediaRecorder.setCamera(mServiceCamera);
mMediaRecorder.setAudioSource(MediaRecorder.AudioS ource.MIC);
mMediaRecorder.setVideoSource(MediaRecorder.VideoS ource.CAMERA);
mMediaRecorder.setOutputFormat(MediaRecorder.Outpu tFormat.MPEG_4);
mMediaRecorder.setAudioEncoder(MediaRecorder.Audio Encoder.DEFAULT);
mMediaRecorder.setVideoEncoder(MediaRecorder.Video Encoder.DEFAULT);
mMediaRecorder.setOutputFile("/sdcard/filenamevideo.mp4");
mMediaRecorder.setVideoFrameRate(30);
mMediaRecorder.setVideoSize(mPreviewSize.width, mPreviewSize.height);
mMediaRecorder.setPreviewDisplay(mSurfaceHolder.ge tSurface());
try {
mMediaRecorder.prepare();
}
catch (IllegalStateException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
mMediaRecorder.start();
mRecordingStatus = true;
return true;
}
برنامه برای p.getSupportedPreviewSizes() مقدار null برمیگرداند که برا من مشکل ایجاد میکنه
همچنین بعد از رفع این ارور (وارد کردن سایز بصورت دستی) در قسمت mServiceCamera.setParameters(p) نیز خطای نال پوینتر اکسپشن میده که بازم مشکل درست میکنه
و بعد از اونم در قسمت mMediaRecorder.setAudioSource(MediaRecorder.AudioS ource.MIC); ارور میده
دوستان اگه نظری در مورد برطرف کردن اصولی این ارورها دارند ممنون میشم بهم بگن
یا اگه کسی سورس بهتری در این مورد داره لینکشو بهم بده یه دنیا ممنونش میشم
با تشکر
من توی پروژه ام از سرویس دوربین استفاده میکنم
که کدش بصورت زیر هستش
public boolean starMediaRecording() {
mRecordingStatus = true;
mServiceCamera = Camera.open();
Camera.Parameters params = mServiceCamera.getParameters();
mServiceCamera.setParameters(params);
Camera.Parameters p = mServiceCamera.getParameters();
final List<Size> listSize = p.getSupportedPreviewSizes();
Size mPreviewSize = listSize.get(2);
p.setPreviewSize(mPreviewSize.width, mPreviewSize.height);
p.setPreviewFormat(PixelFormat.YCbCr_420_SP);
mServiceCamera.setParameters(p);
try {
mServiceCamera.setPreviewDisplay(mSurfaceHolder);
mServiceCamera.startPreview();
}
catch (IOException e) {
Log.e(TAG, e.getMessage());
e.printStackTrace();
}
mServiceCamera.unlock();
mMediaRecorder = new MediaRecorder();
mMediaRecorder.setCamera(mServiceCamera);
mMediaRecorder.setAudioSource(MediaRecorder.AudioS ource.MIC);
mMediaRecorder.setVideoSource(MediaRecorder.VideoS ource.CAMERA);
mMediaRecorder.setOutputFormat(MediaRecorder.Outpu tFormat.MPEG_4);
mMediaRecorder.setAudioEncoder(MediaRecorder.Audio Encoder.DEFAULT);
mMediaRecorder.setVideoEncoder(MediaRecorder.Video Encoder.DEFAULT);
mMediaRecorder.setOutputFile("/sdcard/filenamevideo.mp4");
mMediaRecorder.setVideoFrameRate(30);
mMediaRecorder.setVideoSize(mPreviewSize.width, mPreviewSize.height);
mMediaRecorder.setPreviewDisplay(mSurfaceHolder.ge tSurface());
try {
mMediaRecorder.prepare();
}
catch (IllegalStateException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
mMediaRecorder.start();
mRecordingStatus = true;
return true;
}
برنامه برای p.getSupportedPreviewSizes() مقدار null برمیگرداند که برا من مشکل ایجاد میکنه
همچنین بعد از رفع این ارور (وارد کردن سایز بصورت دستی) در قسمت mServiceCamera.setParameters(p) نیز خطای نال پوینتر اکسپشن میده که بازم مشکل درست میکنه
و بعد از اونم در قسمت mMediaRecorder.setAudioSource(MediaRecorder.AudioS ource.MIC); ارور میده
دوستان اگه نظری در مورد برطرف کردن اصولی این ارورها دارند ممنون میشم بهم بگن
یا اگه کسی سورس بهتری در این مورد داره لینکشو بهم بده یه دنیا ممنونش میشم
با تشکر