サムスンギャラクシーSに前向きカメラを使用する方法
-
27-09-2019 - |
質問
私のような私は、ウェブ上見つけたいくつかの答えを、試してみました
Camera.Parameters parameters = mCamera.getParameters();
parameters.set("camera-id", 2);
mCamera.setParameters(parameters);
または
mMediaRecorder.setVideoSource(2);
しかし、それは動作しません。私はまた、マニフェストファイルにアクセス許可を設定しました。
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
私は何かを逃していますか?私はStackOverflowのを検索したと私は、これは前に頼まれている知っているが、これには確認のソリューションをしないために、ヘルプのいずれかの種類が認識されるであろうが思えます。
注:私は2.1プラットフォーム上でギャラクシーSを使用しています。
解決
とにかく、いくつかの試行錯誤の後、私はそれを行うにはどのようにそれを考え出します:
Camera.Parameters parameters = mCamera.getParameters();
parameters.set("camera-id", 2);
parameters.setPreviewSize(640, 480); // or (800,480) this is supported front camera preview size @ Samsung Galaxy S
mCamera.setParameters(parameters);
それとも、あなたはMediaRecorderでそれを使用する必要がある場合:
MediaRecorder mMediaRecorder = new MediaRecorder();
Camera mCamera = Camere.open();
Camera.Parameters parameters = mCamera.getParameters();
parameters.set("camera-id", 2);
parameters.setPreviewSize(640, 480); // or (800,480)
mCamera.setParameters(parameters);
mCamera.unlock(); // unlock, to give other process to access it otherwise it can't be used later
mMediaRecorder.setCamera(mCamera);
// continue with mMediaRecorder standard routines here
あなたが小さいプレビューサイズを持っている必要がある場合は、は、あなたの代わりにあなたのSurfaceViewサイズダウン/スケールを設定することができます。
他のヒント
現在、前向きカメラ用の標準的なAPIはありません。あなたは、ハードウェアの製造元は、前面カメラにアクセスするためにその拡張子を使用するために持っているものは何でも(もしあれば)のドキュメントに依存する必要があります。これらの特定のデバイスのコースのみの仕事のこの意志ます。
メモ「カメラ-ID」のような生の文字列を書き込むことは、多くの場合、あなたが公式SDKの森の外にさまよっている良い兆候です。 :)
私はこれは良いとして私が働いてきたいくつかの詳細を追加するためのいずれかのような場所だと思います。
の場合では、ポートレートモードでカメラを正面向きを使用していて、結果のファイルは幅と高さ(プレビューとレコーダーの両方)を反転し、H263にエンコーダを設定してみてくださいに投げ緑のブロックを持つ正方形に切っ出てきます。 ..
これは2.3.3 + ...
に私のサムスンギャラクシーS上の問題を解決しました