Расширенный вид камеры в Android? - PullRequest
2 голосов
/ 15 июня 2011

вид камеры, который я использовал в моем приложении, не совпадает с родной камерой, например, вид родной камеры показан ниже, enter image description here

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

<com.cdr.Vio.CamcorderView android:id="@+id/camcorder_preview" android:clickable="true" android:focusable="true" android:layout_height="wrap_content" android:layout_width="wrap_content"></com.cdr.Vio.CamcorderView>

....

<Button android:id="@+id/widget34" android:background="@drawable/camrecord"
    android:layout_height="60dp" android:layout_width="60dp"
    android:layout_gravity="right" android:layout_marginRight="20dp">
</Button>
<Button android:id="@+id/widget33" android:background="@drawable/stoprecord"
    android:layout_gravity="right" android:layout_height="60dp"
    android:layout_width="60dp" android:layout_marginTop="-60dp"
    android:layout_marginRight="20dp">
</Button>

Я попробовал вид с предопределенной высотой и шириной экрана, но опять-таки кажется, что немного растянуто, вот мое растянутое изображение с камеры, enter image description here

как я могу разрешить это, есликто-нибудь знает, что проблема поможет мне.

Спасибо.

Ответы [ 2 ]

1 голос
/ 05 августа 2011

Наконец я нашел код для записи видео высокого качества в Android 2.1, установив videEncodingBitRate, AudioEncodingBitRate, AudioSamplingRate ... и т. Д.Используя этот метод, вы можете установить свойства видео независимо от того, что вы хотите обеспечить видео высокого качества.

Для настройки параметров высокого качества и низкого качества см. Эту страницу,

http://www.andgps.com/20110410/camcorderprofile-predefined-camcorder-profile-settings-for-camcorder-applications

Код, который я использовал с базовой версией Android 2.1 для создания высококачественного видео, показан ниже.

recorder = new MediaRecorder();
Method[] methods = recorder.getClass().getMethods();

recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setVideoFrameRate(24);
recorder.setVideoSize(720, 480);

for (Method method : methods) {
    try {
        if (method.getName().equals("setAudioChannels")) {
            method.invoke(recorder, String.format("audio-param-number-of-channels=%d", 1));
        } else if (method.getName().equals("setAudioEncodingBitRate")) {
            method.invoke(recorder, 12200);
        } else if (method.getName().equals("setVideoEncodingBitRate")) {
            method.invoke(recorder, 3000000);
        } else if (method.getName().equals("setAudioSamplingRate")) {
            method.invoke(recorder, 8000);
        } else if (method.getName().equals("setVideoFrameRate")) {
            method.invoke(recorder, 24);
        }
    } catch (IllegalArgumentException e) {

        e.printStackTrace();
    } catch (IllegalAccessException e) {

        e.printStackTrace();
    } catch (InvocationTargetException e) {

        e.printStackTrace();
    }
}

recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
0 голосов
/ 15 июня 2011

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

Вызовите setPreviewSize для параметра камеры и установите параметр камеры на устройстве камеры.Перезапустите предварительный просмотр.

Редактировать: добавлен код

mCameraDevPara.setPreviewSize(PREVIEW_WIDTH, PREVIEW_HEIGHT);
mCameraDev.setParameters(mCameraDevPara);
mMediaRecoder.setCamera(mCameraDev);

PREVIEW_WIDTH и PREVIEW_HEIGHT, если ширина и высота разрешения предварительного просмотра, которое вы хотите установить.

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