8

次のような、ウェブ全体で見つけたいくつかの回答を試しました。

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 プラットフォームで Galaxy S を使用しています

4

3 に答える 3

12

とにかく、いくつかの試行錯誤の後、私はそれを行う方法を見つけました:

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 サイズを設定/縮小できます。

于 2010-11-23T04:45:57.897 に答える
2

現在、前面カメラ用の標準 API はありません。拡張機能を使用して前面カメラにアクセスする方法については、ハードウェア メーカーのドキュメント (ある場合) に依存する必要があります。もちろん、これはこれらの特定のデバイスでのみ機能します。

「camera-id」のような生の文字列を記述することは、多くの場合、公式 SDK の外の森に迷い込んでしまったことを示す良い兆候です。:)

于 2010-11-22T02:02:03.333 に答える
0

これは、私が解決した詳細を追加するのに適した場所だと思います。

前面カメラをポートレート モードで使用していて、結果のファイルが緑色のブロックがスローされた正方形に切り取られた場合は、幅と高さ (プレビューとレコーダーの両方) を反転し、エンコーダーを H263 に設定してみてください...

これにより、2.3.3以降のSamsung Galaxy Sの問題が解決しました...

于 2012-10-10T15:48:16.207 に答える