SurfaceView без камеры: предварительный просмотр после запуска повернут на 90 градусов - PullRequest
2 голосов
/ 09 февраля 2011

моя проблема. Я создаю приложение, которое делает предварительный просмотр с камеры на Android. Для предварительного просмотра, пока я не нажимаю на кнопку - я использовал Camera, camera.open. Когда приложение запущено - ориентация экрана нормальная. Но когда я пытаюсь записать видео - я закрыл предварительный просмотр камеры и использовал только SurfaceView с Recorder.setVideoSource (MediaRecorder.VideoSource.DEFAULT); Это показывает мне предварительный просмотр с камеры без класса Camera. Все это я делаю, потому что после записи исправлена ​​ошибка с зеленоватым экраном. Итак ... этот предварительный просмотр (который без камеры) он после запуска всегда поворачивал на 90 градусов (как в режиме LANDSCAPE) я пытаюсь использовать

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE );

и

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT );

но это не решило мою проблему. Итак, может кто-нибудь сказать мне, как повернуть мой предварительный просмотр (без камеры) в режиме, как SCREEN_ORIENTATION_PORTRAIT ??

Пожалуйста, скажите мне, как решить эту проблему .. Я не могу это исправить 2-3 дня: (

С уважением, Питер постскриптум извините за мой плохой английский, надеюсь, вы меня понимаете.

это код, который я использовал для предварительного просмотра, когда записывал видео / аудио

 preview = new SurfaceView(withPreview.this);
 preview.getHolder();
 holder.addCallback(this);
 holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS );

получить изображение с камеры

recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);

теперь экран повернут на 90 градусов. если я установлю

recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);

чем изображение повернуто на 180 градусов О_О

и предварительный просмотр

recorder.setPreviewDisplay(holder.getSurface());

это все, что мне нужно для предварительного просмотра камеры Как вы можете видеть, что я не использую камеру ... так что я не могу использовать camera.parameters.setOrientation (90) // пример :]

1 Ответ

1 голос
/ 09 февраля 2011

это правильно, что вы исправите ориентацию экрана в альбомной или портретной ориентации?Или это должно быть динамично?Так что, если я вас понимаю, чтобы исправить ориентацию экрана, то я предпочитаю добавить это в свой манифест Android:

android:screenOrientation="landscape"

Это должно быть внутри блока активности.

Надеюсь, этопоможет, иначе скажите мне, когда он должен dynmaic или так далее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...