gpt4 book ai didi

android - 在 Android 后台使用相机

转载 作者:搜寻专家 更新时间:2023-11-01 08:02:50 25 4
gpt4 key购买 nike

我正在尝试从相机中获取图片。

@Override
public void onCreate() {
super.onCreate();
//android.os.Debug.waitForDebugger();

myCamera=Camera.open();


SurfaceView dummy=new SurfaceView(getApplicationContext());
try {
if(myCamera!=null)
{
myCamera.setPreviewDisplay(dummy.getHolder());
myCamera.setPreviewCallback(this);
Log.i(TAG,"myCamera is not null");
}
getFrames();

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.e(TAG, "setPreviewDisplay " + e);
}
myCamera.startPreview();
}


public void getFrames() {

new Thread(new Runnable() {

public void run() {

while(flag)
{
Log.i(TAG, "getFrames");
try{

//method();
takePictureNoPreview();
Thread.sleep(54);

} catch (Exception e) {
Log.e(TAG, "getFrames thread error: " + e);
}
}
myCamera.release();

}
}).start();
}


public void takePictureNoPreview(){
try{
Log.i(TAG,"takePictureNoPreview");
myCamera.takePicture(null, null, getJpegCallback())
} catch (Exception e) {
Log.e(TAG, "takePictureNoPreview " + e);
}


private PictureCallback getJpegCallback(){
PictureCallback jpeg=new PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
try {
Log.i(TAG,"getJpegCallback");
FileOutputStream(String.format("/sdcard/RealSpeaker/%d.jpg", System.currentTimeMillis()));
FileOutputStream os = new FileOutputStream(String.format("/sdcard/Sample/%d.jpg", System.currentTimeMillis()));
os.write(data);
os.close();
} catch (IOException e) {
//do something about it
}
}
};
return jpeg;

}

问题是 getJpegCallback 周围的方法不正确:(文件夹中没有日志和图像)ю当我调试应用程序时,TAG - getJpegCallback 不显示在 LogCat 中,但 TAG takePictureNoPreview 显示。关闭应用程序后,相机不允许(现在没问题)。怎么了?

最佳答案

从 API 11 开始,您可以使用 SurfaceTexture,而不是使用 SurfaceViewSurfaceHolder。然后,您使用 Camera.setPreviewTexture 而不是 Camera.setPreviewDisplay 进行设置。

它在不同设备上的服务对我来说效果很好。

This回答以及this one讨论这一点。

关于android - 在 Android 后台使用相机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18634994/

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