2

カメラの解像度を見つけようとしました

final Parameters p = this.camera.getParameters();
List<Size> previewSizes=p.getSupportedPreviewSizes();

メディアレコーダーのビデオサイズを設定します

this.mediaRecorder.setVideoSize(previewSizes.get(0).width, previewSizes.get(0).height);

以前は風景モードでビデオを録画していました。

MediaRecorderこの高解像度でビデオを録画できません。

解像度を下げてみると録画中。

設定している画面表示サイズや動画サイズに問題はありませんか?

4

1 に答える 1

6

このようなことを試してください

getBestPreviewSize () は、指定された幅と高さに基づいて最適な解像度を決定します。メインのメディアレコーダーとカメラのセットアップの詳細が明らかに欠落していますが、それらは非常に簡単に見つけることができ、おそらくすでに完了しているでしょう

...
    Camera.size size = getBestPreviewSize(720,480, mCamera.getParameters());

    mMediaRecorder.setVideoSize(size.width,size.height);
    mMediaRecorder.setVideoFrameRate(15);
    mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
    mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
...

  private Camera.Size getBestPreviewSize(int width, int height, Camera.Parameters parameters) {
    Camera.Size result=null;

    for (Camera.Size size : parameters.getSupportedPreviewSizes()) {
        if (size.width<=width && size.height<=height) {
            if (result==null) {
                result=size;
            } else {
                int resultArea=result.width*result.height;
                int newArea=size.width*size.height;

                if (newArea>resultArea) {
                    result=size;
                }
            }
        }
    }
    return(result);
}  
于 2013-05-28T06:45:16.407 に答える