0

アプリケーションがバックグラウンドで動作しているときにビデオ カメラを有効にしたいと考えています。
それで、それを行うために、ビデオカメラを開始/停止するサービスを作成しました...

問題はSurfaceView、メインアクティビティ(私の場合はそのサービスを呼び出したもの)でを作成する必要があることsetPreviewDisplayです しかし、アプリケーションがバックグラウンドにあると、Application lost the surfaceエラーが発生します。

ビデオ カメラを有効にするために が必要であることはわかってSurfaceViewいますが、アプリケーションがバックグラウンドにあるときにビデオ カメラを有効にするためのより良い解決策はありますか?

4

1 に答える 1

0

質問を完全に理解しているかどうかはわかりませんが、問題は Service が Activity のように UI 関連のクラスを実際に処理することを意図していないことだと思います。

SurfaceView セットアップを含むすべてのカメラ コードをアクティビティにパッケージ化してみてください。次に、そのアクティビティのインテントを起動して、サービスにアクティビティを呼び出させます。基本的に、Service が行うことは、カメラがいつ必要になるかを判断してから、Activity を起動することだけです。

カメラのプレビューが画面に表示されるという事実に問題がないことを前提としています。

于 2012-08-06T20:39:10.860 に答える