0

助けを求めています。私はアクティビティでサービスをバインドしました:

Intent i = new Intent(MainActivity.this, X.class);
MainActivity.this.bindService(i, mConnection, Context.BIND_AUTO_CREATE);

このサービスは、Camera.PreviewCallback (YCbCr_420_SP (NV21)) から RGB にデータをデコードするように設計されています。CPU を軽量化するために、フレームレートとカメラの解像度を制限しました。(ライブ プレビューはありません)。

私が直面している問題は、UI スレッドのオーバーロードであり、その結果、MainActivity (アニメーション、映画) でのコンテンツの表示が遅くなります。高価な操作はすべてサービスで実行されます (デコード、バーコードの読み取り)。

どうすればこれを修正できますか? スレッドを作成する必要があると思いますが、彼を Camera.PrviewCallback に接続するにはどうすればよいですか?

ありがとうございます。アドバイスをお願いします。

4

1 に答える 1

1

私は最近、Activity を変更して UI スレッドからonPreviewCallback ()を取り除く方法を説明しました: 同じアプローチをサービスに適用できます。

于 2013-10-16T15:19:12.653 に答える