我正在尝试将qr代码扫描程序集成到我的google纸板程序中。我用答案here开始纸板相机。当我尝试将条形码阅读器的视觉API集成到此时,我遇到了问题。我需要启动相机将纹理传递给vision API的camerasource部分。
final CameraSource cameraSource = new CameraSource
.Builder(this, barcodeDetector)
.setRequestedPreviewSize(640, 480)
.build();
如何将qr代码扫描程序与vision API集成到我的纸板应用程序中?
答案 0 :(得分:0)
Google提供了一个非常有用的视图,用于管理CameraSource
进行预览和检测。您不必担心管理纹理本身或确定视图中纹理/曲面的布局。
它被称为CameraSourcePreview
,它用于管理CameraSource
和SurfaceView
的操作。
您可以像布局中的任何其他视图一样使用CameraSourcePreview
,例如在此全屏LinearLayout
中:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/topLayout"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:keepScreenOn="true">
<com.google.android.gms.samples.vision.barcodereader.ui.camera.CameraSourcePreview
android:id="@+id/preview"
android:layout_width="match_parent"
android:layout_height="match_parent">
</com.google.android.gms.samples.vision.barcodereader.ui.camera.CameraSourcePreview>
</LinearLayout>
在您的活动中,您将BarcodeDetector
和CameraSource
设置为正常(可能在您的onCreate()
方法中),然后(可能{ {1}} )启动您的onResume()
。它看起来像这样:
CameraSourcePreview
实际上,您只是通过if (mCameraSource != null) {
try {
mPreview.start(mCameraSource, mGraphicOverlay);
} catch (IOException e) {
Log.e(TAG, "Unable to start camera source.", e);
mCameraSource.release();
mCameraSource = null;
}
}
管理CameraSource
,但它处理了布局/预览等的大量繁重工作。所以你不必这样做。查看BarcodeCaptureActivity
以了解有关活动如何管理这些组件的更多信息。
查看barcode-reader中的android vision sample projects示例,了解完整的项目示例。
希望有所帮助,欢呼。