0

Image available リスナーはフラグメントのイメージを取得し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 デバイスに実装したかったのですが、「A TextureView またはサブクラスは、ハードウェア アクセラレーションが有効になっている場合にのみ使用できます」という警告が表示され、onimageavailble()が呼び出されることはありません。警告を解決するためにコードに必要な変更を加えましたが、それでもonimageavailble()呼び出されません。

Android 用のラズベリー Pi3 でコードをデバッグすると、画像リスナーが選択できないため、フラグメントにカメラ ストリームが表示されていないことに気付きました。

この問題の解決策を教えてください

4

1 に答える 1