0

图像可用侦听器拾取片段的图像,并onimageavailble()在图像可用时立即连续调用。代码实例如下:

protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(null);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
           WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    setContentView(R.layout.activity_camera);
    setFragment();
}

setFragment()代码是:

    protected void setFragment() {
        final Fragment fragment =
            CameraConnectionFragment.newInstance(
                new CameraConnectionFragment.ConnectionCallback() {
                  @Override
                  public void onPreviewSizeChosen(final Size size, final int rotation) {
                    CameraActivity.this.onPreviewSizeChosen(size, rotation);

                  }
                },
                this,
                getLayoutId(),
                getDesiredPreviewFrameSize());
        getFragmentManager()
            .beginTransaction()
            .replace(R.id.container, fragment)
            .commit();
   }

该代码在 Android 上正确运行,因此我希望它在 Android Things 设备上实现,但我收到一条警告,指出“ TextureView 或子类只能在启用硬件加速的情况下使用”并且onimageavailble()永远不会被调用。我对代码进行了必要的更改以解决警告,但仍然onimageavailble()从未调用过。

在为 android things 调试树莓派 3 中的代码时,我注意到相机流没有显示在片段中,因为图像侦听器无法选择一个。

请为我提供此问题的解决方案

4

1 回答 1

1

您正在使用WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED(使用 AndroidThings 0.3.0

R Pi 的硬件加速仅在 AndroidThings 中引入0.5.0

请参阅此处的发行说明:

https://developer.android.com/things/preview/releases.html

随着 Android O 的更新,现在支持 OpenGL ES 2.0。带有 GPU 的平台(例如 Raspberry Pi 3)现在也支持硬件加速。

请更新您正在使用的 AndroidThings 版本。

于 2017-09-26T17:45:24.757 回答