gpt4 book ai didi

android - 录制视频时摩托罗拉 DROID RAZR 的相机问题

转载 作者:太空狗 更新时间:2023-10-29 12:53:13 26 4
gpt4 key购买 nike

我已经在各种手机上测试了我的应用程序。我的应用程序的主要功能是通过手机摄像头拍照和录制视频。我在大多数手机上都没有遇到问题,但我确实在 Motorola DROID RAZR 上遇到过这个问题。 .当我拍照时,我的应用程序工作正常。但是我在录制视频时遇到了问题。当我录制视频时,出现黑屏。移动屏幕上没有显示预览。我不知道为什么会这样,但在大多数手机上它都能正常工作。在这款手机(droid razr)上拍照效果很好。

摩托罗拉 DROID RAZR 配置,

  1. 操作系统:Android v2.3.5。
  2. 摄像头:高清摄像头,8MP。
  3. 处理器:TI OMAP4430

这是我的代码,

Camera camera = Camera.open();
Parameters params = camera.getParameters();
camera.setDisplayOrientation(90);
camera.setParameters(params);
camera.setDisplayOrientation(90);

MediaRecorder recorder = new MediaRecorder();
recorder.setCamera(camera);
recorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
recorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));
recorder.setVideoSize(640, 480);
recorder.setMaxDuration(25000);
recorder.setOrientationHint(90);

更新:

我已经在摩托罗拉 Droid Razr 模拟器上测试了这个应用程序。我得到以下异常,

MediaRecorder(430): prepare failed: -17
System.err(430): java.io.IOException: prepare failed.
System.err(430): at android.media.MediaRecorder._prepare(Native Method)
System.err(430): at android.media.MediaRecorder.prepare(MediaRecorder.java:590)

但是我在我的其他模拟器上没有得到这个异常。如何解决这个问题?

最佳答案

终于找到了解决办法。下面的代码适用于所有设备。 ;)

        Holder holder = getHolder();
holder.addCallback(this);
holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
Camera camera = Camera.open();
try {
camera.setPreviewDisplay(holder);
camera.startPreview();
} catch (IOException e) {
Log.e(TAG, e.getMessage());
e.printStackTrace();
}

camera.unlock();
MediaRecorder recorder = new MediaRecorder();
recorder.setCamera(camera);
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setVideoSize(640, 480);
recorder.setVideoFrameRate(20);
recorder.setVideoEncodingBitRate(3000000);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);

try {

String videopath = File.createTempFile("video", ".mp4")
.getAbsolutePath();

recorder.setOutputFile(videopath);

} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

recorder.setPreviewDisplay(holder.getSurface());

关于android - 录制视频时摩托罗拉 DROID RAZR 的相机问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9770986/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com