MediaRecorder захват видео в портретном режиме

Я пытаюсь создать собственное видео приложение. Iwork с использованием настроек в манифесте2.2 only (API 8).

Все идет хорошо, но я не понимаю, почему видео в портретном режиме не отличается от lanscape.

Для обнаружения изменения ориентации устройства я использую этот код в SurfaceChanged ()

        if (mCamera != null) {

        Camera.Parameters p = mCamera.getParameters();

        try {
            mCamera.stopPreview();
        } catch (Exception e) {
            // TODO: handle exception
        }

        int previewWidth = 0;
        int previewHeight = 0;

        if (mPreviewSize != null) {
            Display display = ((WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
            int rotation = display.getRotation();

            switch (rotation) {
            case Surface.ROTATION_0:
                previewWidth = mPreviewSize.height;
                previewHeight = mPreviewSize.width;
                mCamera.setDisplayOrientation(90);
                break;

            case Surface.ROTATION_90:
                previewWidth = mPreviewSize.width;
                previewHeight = mPreviewSize.height;
                mCamera.setDisplayOrientation(0);
                break;

            case Surface.ROTATION_180:
                previewWidth = mPreviewSize.height;
                previewHeight = mPreviewSize.width;
                mCamera.setDisplayOrientation(270);
                break;

            case Surface.ROTATION_270:
                previewWidth = mPreviewSize.width;
                previewHeight = mPreviewSize.height;
                mCamera.setDisplayOrientation(180);
                break;
            }

            p.setPreviewSize(previewWidth, previewHeight);
            mCamera.setParameters(p);
        }
    try {
        mCamera.setPreviewDisplay(mHolder);
        mCamera.startPreview();
    } catch (Exception e) {
        Log.d(TAG, "Cannot start preview.", e);
    }
}

Работает как шарм. Если я поворачиваю поверхность устройства, меняю ориентацию, вызывая SurfaceChanged, где для камеры задано соответствующее значение DisplayRotation.

Вопрос в том, как определить позже, было ли видео снято либо в режиме Lanscape, либо в портретном режиме. Как я понял, все видео сняты в альбомной ориентации. Это не зависит от setDisplayOrientation, которые влияют только на процесс предварительного просмотра.

Также, исследуя проблему, я заметил, что если использовать стандартное приложение «Камера», оно записывает специальный тег в видеофайл (видно из MediaInfo):Rotation : 90 для портрета снято видео.

Но класс MediaRecorder этого не делает.

Кажется, это проблема. Кто-нибудь должен решить это?

Ответы на вопрос(2)

Ваш ответ на вопрос