2013-01-24 7 views
8

私はウェブ上で全部を検索しましたが、その1001エラーが何であるかはわかりません。その後数秒後にカメラ100のエラーが発生しますが、最初のエラーが何であるかはわかりません。誰にもアイデアはありますか?アンドロイドカメラのエラー1001 - それは一体何ですか?

+0

はそうです:次のコードは、ほとんどのデバイスのアドレス。 –

答えて

5

S3でもこのエラーが発生しました。私は、カメラのプレビューサーフェスがMediaRecorderによってどのように使用されたかを追跡したと思います。私の場合は、録画を開始しようとしたときにプレビュー表示がリセットされていました。私は自分のコードを洗浄することにより、それを解決し、ちょうど(Android Camera developer guideから)の下にSurfaceViewの実装でプレビュー表示を、設定起動と停止に呼び出しを使用:

public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback { 
private SurfaceHolder mHolder; 
private Camera mCamera; 

public CameraPreview(Context context, Camera camera) { 
    super(context); 
    mCamera = camera; 

    // Install a SurfaceHolder.Callback so we get notified when the 
    // underlying surface is created and destroyed. 
    mHolder = getHolder(); 
    mHolder.addCallback(this); 
    // deprecated setting, but required on Android versions prior to 3.0 
    mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 
} 

public void surfaceCreated(SurfaceHolder holder) { 
    // The Surface has been created, now tell the camera where to draw the preview. 
    try { 
     mCamera.setPreviewDisplay(holder); 
     mCamera.startPreview(); 
    } catch (IOException e) { 
     Log.d(TAG, "Error setting camera preview: " + e.getMessage()); 
    } 
} 

public void surfaceDestroyed(SurfaceHolder holder) { 
    // empty. Take care of releasing the Camera preview in your activity. 
} 

public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { 
    // If your preview can change or rotate, take care of those events here. 
    // Make sure to stop the preview before resizing or reformatting it. 

    if (mHolder.getSurface() == null){ 
     // preview surface does not exist 
     return; 
    } 

    // stop preview before making changes 
    try { 
     mCamera.stopPreview(); 
    } catch (Exception e){ 
     // ignore: tried to stop a non-existent preview 
    } 

    // set preview size and make any resize, rotate or 
    // reformatting changes here 

    // start preview with new settings 
    try { 
     mCamera.setPreviewDisplay(mHolder); 
     mCamera.startPreview(); 

    } catch (Exception e){ 
     Log.d(TAG, "Error starting camera preview: " + e.getMessage()); 
    } 
} 
} 
3

はちょうど私が将来のためにここに投稿を追加するだろうと思いました参照。この問題は長い間悩まされていました。 解決策セットはgetSupportedPictureSizeメソッドから取得されましたが、私の問題はプレビューサイズが正しくないことが原因であることが判明しました。

//first entry in list is 1392x1392 for front facing camera on an S3 
List<Camera.Size> supportedPictureSizes = params.getSupportedPictureSizes(); 

がこの解像度を設定するか、恐ろしいエラー1001

の原因となりますalltogether画像サイズを設定するために無視何かでこれを発生した場合は、次のよう

したがって、たとえば、あなたはサイズを取得することができます他のデバイス私はさまざまな画像サイズを試してみることをお勧めします。

0

なぜ私がGalaxy S3でそれを手に入れたのかという別の理由がありました。私はTextureViewを使用してカメラのプレビューを表示していましたが、プレビューの成功後にホームボタンを押してから再びアプリケーションを入力するとこの恐ろしいエラーが発生しました。 onResume()関数では、プレビューをもう一度開始し、onSurfaceTextureDestroyed()関数でSurfaceTextureインスタンス変数を解放していないことがわかりました。

私はこの関数にリリースラインを追加し、それは次のようになりますし、完璧に動作します:私の場合は

@Override public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) { 
    mSurfaceTexture = null; //This was the offending culprit. 

    releaseMediaPlayer(); 
    releaseVideoRecorder(); 
    releaseCamera(); 

    return false; 
} 
0

、サムスンS3で、ビデオサイズのパラメータが設定されていなかった、これはにつながりました1001エラーです。プレビューサイズを使用してメディアレコーダーのビデオサイズを設定すると、問題が解決しました。ただし、この変更は他のデバイスでは失敗する可能性があります。これは、パラメータがすべてのデバイスで使用可能/設定されていない場合があるためです。私は将来的にそれを避けることができ、それは私のコードの以前のバージョンへの私のロールバックはそれを修正しますが、私はまだその1001エラーWTF知っていただきたいと思いました今までに何

if(params.get("video-size") != null && params.get("video-size").isEmpty()) { 
    int videoWidth = params.getPreviewSize().width; 
    int videoHeight = params.getPreviewSize().height; 
    mediaRecorder.setVideoSize(videoWidth, videoHeight); 
} else { 
    mediaRecorder.setVideoSize(profile.videoFrameWidth, profile.videoFrameHeight); 
} 
関連する問題