【问题标题】:Camera Capture Without Preview in Android 2.2Android 2.2 中不带预览的相机捕获
【发布时间】:2010-08-30 15:41:45
【问题描述】:

我需要在不显示预览的情况下捕获图像.. 我想在后台作为一项服务来做。

这样可以吗??

【问题讨论】:

    标签: android


    【解决方案1】:

    是可以实现的。 您应该定义一个处理 Camera 对象的类,如对 Camera.open() 等的调用。 不要为相机对象提供以下几行以禁用预览 -

    mCamera.setPreviewDisplay(mTargetHolder);
    

    mTargetHolder 是 SurfaceView。

    如果你想接收帧回调,你可以实现 Camera.PreviewCallback 接口。

    现在,在调用 camera.startPreview() 之前,使用 setPreviewCallbackWithBuffer(Camera.PreviewCallback) 注册回调处理程序。 Camera reference

    使用从回调中收到的帧数据,您可以做任何您想做的事情。请记住,它是一种原始数据格式。 如果您想拍照,另请参阅 Camera.PictureCallback 用法。

    我希望这会有所帮助。 (即使不相关)

    干杯

    【讨论】:

    • 您确定无需致电setPreviewDisplay 即可拍摄照片吗?有示例代码吗?
    • 删除这条线,不会在表面上显示预览,但它仍然需要一个连接到主窗口的表面才能工作..所以现在我可以得到一个而不是预览黑色表面 :) 你可能知道解决这个问题的任何方法吗?
    • 要使其在每台设备上都能正常工作,必须在某处添加表面并实际创建表面。请参阅stackoverflow.com/questions/2386025/…中的 cmets
    猜你喜欢
    • 1970-01-01
    • 2015-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-23
    • 1970-01-01
    相关资源
    最近更新 更多