gpt4 book ai didi

android - 相机预览失败 - queueBuffer 失败

转载 作者:行者123 更新时间:2023-11-30 04:28:59 25 4
gpt4 key购买 nike

我正在尝试编写一个连续拍照的应用程序。我有一个 Activity 和一个预习类。我使用 AsyncTask 类解决了这个问题。

private class CaptureTask extends AsyncTask<Boolean,Integer,Integer>
{

@Override
protected Integer doInBackground(Boolean... arg0) {
// TODO Auto-generated method stub
while(running)
{
if(!takingPicture&&getPreviewState()&&!p.checkCamera())
takePicture();
else if(!takingPicture&&!p.getPreviewState())
clearPic();
}
return picCounter;
}
protected void onPostExecute(Integer pics)
{
t.setText("Pics taken: "+pics);
}

}

这在一台设备上运行良好,即运行 CM7 的摩托罗拉 Droid。但是,当我在运行 ACS 2.3.4 的 Samsung Epic 上加载它时,我会不断收到以下错误,直到我退出该应用程序。没有显示预览,只有黑色。

11-08 11:42:28.207: ERROR/CameraHardwareSec(76): ERR(int android::CameraHardwareSec::previewThread()):overlay queueBuffer fail 11-08 11:42:28.238: ERROR/v4l2_utils(76): Error = Invalid argument from qbuf

我尝试寻找这个问题,但只发现了几个 Unresolved 问题。

最佳答案

如果您正在尝试录制视频,请不要使用

mediaRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));

设置您的媒体记录器,即使您使用的是 SDK >= 8

改为执行常规操作:

mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);

你将不再看到

android::CameraHardwareSec::previewThread()):overlay queueBuffer fail

此错误的来源是默认相机预览的大小与 MediaRecorder 视频大小不匹配,因为当您将大小设置为与以下相同时错误消失:

CamcorderProfile camcorderProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH);
parameters.setPreviewSize(camcorderProfile.videoFrameWidth, camcorderProfile.videoFrameHeight);
mediaRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));

关于android - 相机预览失败 - queueBuffer 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8054144/

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