Android使用摄像机在HTC one X上录制视频

时间:2012-08-21 11:41:02

标签: android htc-android

我在我的代码中实现了一个录像机,它几乎可以在所有设备上运行 除了HTC One X.视频记录卡住了(第一张图片没有改变),当我试图打开文件时,我收到一个弹出窗口“无法播放视频,抱歉此视频无法播放“

以下是我的设置

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);

由于

1 个答案:

答案 0 :(得分:0)

我根据此问题调整了一些代码How can I capture a video recording on Android?来录制视频,将其设置为640x480,并且在我的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)

这会将分辨率,比特率等设置为有效的值。高品质录音有各种常数,低等等。