Android записывает видео с помощью видеокамеры на HTC one X

Я реализовал в своем коде видеорегистратор, и он отлично работает почти на всех устройствах, кроме HTC One X. Там запись видео застревает (первое изображение не меняется) и при попытке открыть файл я m появляется всплывающее окно «Невозможно воспроизвести видео, извините, это видео невозможно воспроизвести»

Вот мои настройки

mMediaRecorder.setPreviewDisplay(mSurfaceHolder.getSurface());

    // Use the same frame rate for both, since internally
    // if the frame rate is too large, it can cause camera to become
    // unstable. We need to fix the MediaRecorder to disable the support
    // of setting frame rate for now.
    mMediaRecorder.setVideoFrameRate(mProfile.videoFrameRate);

    //mMediaRecorder.setVideoSize(mVideoWidth, mVideoHeight);
    mMediaRecorder.setVideoSize(640,480); // Works On Note(not on HTC One X)


    mMediaRecorder.setVideoEncodingBitRate(MAXIMAL_PERMITTED_VIDEO_ENCODING_BITRATE);
    // mMediaRecorder.setVideoEncoder(mProfile.videoCodec);
    mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);
    // mMediaRecorder.setAudioEncoder(mProfile.audioCodec);
    mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);

Спасибо


person Nativ    schedule 21.08.2012    source источник
comment
эй powerX, у вас есть какие-либо успехи в этом?   -  person ticofab    schedule 04.04.2013
comment
Извините, это было давно и я не могу вспомнить   -  person Nativ    schedule 07.04.2013


Ответы (1)


Я адаптировал некоторый код из этого вопроса Как я могу захватить видеозапись на Android? для записи видео установите разрешение 640 x 480, и на моем AT&T One X все заработало: https://raw.github.com/lnanek/Misc/master/HtcOneXVideoRecord/src/com/htc/sample/videorecord/RecordVideo.java

Так что это не 640x480, которое не работает само по себе. Какое значение битрейта вы устанавливаете? Рассматривали ли вы вместо этого использование профилей, которые встроены в поддерживаемые комбинации? Например, вы бы установили:

mRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH)

И это установит разрешение, битрейт и т. д. на значения, которые работают. Существуют различные константы для высокого качества записи, низкого и т. д.

person Lance Nanek    schedule 08.10.2012