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 でコードをデバッグすると、画像リスナーが選択できないため、フラグメントにカメラ ストリームが表示されていないことに気付きました。
この問題の解決策を教えてください