アンドロイドでカメラプレビューの2つのインスタンスを持つことが可能かどうか疑問に思いました。つまり、カメラの2つのインスタンスを同時に実行しているということです。もしそうなら、これをどのように行うのでしょうか?別のスレッドにインスタンスを実装する必要がありますか?私はこれまでカメラAPIを使用したことがないので、この問題について頭を悩ませてもらえれば幸いです。時間を無駄にしないでください。ありがとうございました。
2 に答える
カメラへの接続を2つ開くことはできません。プレビューを取得するにはカメラをロックする必要があり、ロックできるのは1回だけです。実際、カメラをロックしていて、ロックを解除する前にアプリがクラッシュした場合、誰もカメラを使用できなくなります。
http://developer.android.com/reference/android/hardware/Camera.html#open%28int%29を参照してください
カメラの使用が終了したら、release()を呼び出す必要があります。そうしないと、ロックされたままになり、他のアプリケーションで使用できなくなります。
..。
RuntimeException:カメラサービスへの接続が失敗した場合(たとえば、カメラが別のプロセスで使用されている場合)。
とはいえ、プレビューコールバックを確実に登録し、単一のカメラインスタンスからプレビューデータを取得して、複数のビューで使用することができます。ただし、プレビューコールバックによって提供される生のbyte []データのYUV形式に関する問題に注意してください:Androidのビデオ画像からフレームを取得する(プレビューデータはカメラドライバーから生であり、デバイスごとに異なる場合があることに注意してください)
大きな理由の質問を無視すると、あなたの最善の策は、カメラと相互作用するサービスを作成し、そこから行くことです。