首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在风景中播放视频,尽管我是在肖像中录制的

在风景中播放视频,尽管我是在肖像中录制的
EN

Stack Overflow用户
提问于 2013-04-30 01:23:40
回答 1查看 1.2K关注 0票数 1

正如标题所说,我有这个代码来准备我的记录器:

代码语言:javascript
复制
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;

}

我在我的表面视图中有:

代码语言:javascript
复制
@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){
        }
    }

这是唯一两个使用摄像头的地方(旋转)…在录制的时候,一切都是肖像的,但是当我回放视频的时候,它是风景的。有人能告诉我为什么和如何解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2013-10-19 03:18:15

使用setOrientationHint(整数度) http://developer.android.com/reference/android/media/MediaRecorder.html#setOrientationHint(int)

mediaRecorder.setOrientationHint (90 );(90表示后置摄像头,270表示前置摄像头)在mediaRecorder.prepare()之前调用此函数;

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16284628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档