正如標題所說我有這樣的代碼來準備我的記錄:視頻播放,雖然我在人像
private boolean prepareMediaRecorder(){
myCamera = getCameraInstance();
Camera.Parameters p = myCamera.getParameters();
p.set("orientation", "landscape");
p.set("rotation", 90);
myCamera.setParameters(p);
myCamera.setDisplayOrientation(90);
myCamera.unlock();
mediaRecorder = new MediaRecorder();
mediaRecorder.setCamera(myCamera);
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mediaRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));
File tempFile = new File(Environment.getExternalStorageDirectory(), "/rec/temp/video_" + String.valueOf(videoCount) + ".mp4");
mediaRecorder.setOutputFile(tempFile.getPath());
mediaRecorder.setMaxDuration(12500); // Set max duration 11 sec.
mediaRecorder.setMaxFileSize(7000000); // Set max file size 7M
mediaRecorder.setPreviewDisplay(myCameraSurfaceView.getHolder().getSurface());
try {
mediaRecorder.prepare();
} catch (IllegalStateException e) {
releaseMediaRecorder();
return false;
} catch (IOException e) {
releaseMediaRecorder();
return false;
}
return true;
}
,我已經在我的表面看法:
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int weight,
int height) {
// If your preview can change or rotate, take care of those events here.
// Make sure to stop the preview before resizing or reformatting it.
if (mHolder.getSurface() == null){
// preview surface does not exist
return;
}
// stop preview before making changes
try {
mCamera.stopPreview();
} catch (Exception e){
// ignore: tried to stop a non-existent preview
}
// make any resize, rotate or reformatting changes here
// start preview with new settings
try {
myCamera.setDisplayOrientation(90);
mCamera.startPreview();
} catch (Exception e){
}
}
這是唯一的兩個地方使用相機(旋轉)... 當錄製它很好,一切都是肖像,但是當我播放該視頻時,它的風景。任何人都可以告訴我爲什麼以及如何解決這個問題?
你有沒有嘗試將相機設置爲縱向而不是風景,就像你在這裏所做的那樣「p.set(」orientation「,」landscape「);」 – Mikel 2013-10-18 19:41:18