这个问题在这里已经有了答案:




9年前关闭。






我正在尝试在自定义 SurfaceView 中设置相机预览,但每次执行初始化方法时都会出现异常。

下面是相机预览初始化的代码:

private void init(Context context)
{
    setFocusable(true);
    mRecording = false;
    fileRW = new FileReaderWriter();
    frameCount = 0;
    if(mCamera == null)
    {
        mCamera = Camera.open();
    }
    Parameters parameters = mCamera.getParameters();
    parameters.setPictureFormat(PixelFormat.JPEG);
    mCamera.setParameters(parameters);
    try {
        mCamera.setPreviewDisplay(surfaceHolder);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    mCamera.startPreview();

}

每次我尝试执行该方法时,mCamera.setPreviewDisplay(surfaceHolder); 行都会引发异常( setPreviewDisplay failed )。

有谁知道可能有什么问题?我真的很感激你的任何帮助。

谢谢!`

最佳答案

我完全同意乔恩·布莱特

我无法弄清楚发生了什么一周,我忽略了表面支架上的 setType 因为 SDK 说它已被弃用,即。



但是如果你不这样做,它会在 setPreview 上崩溃。这是在具有 2.1 的 Galaxy S 上运行 1.5 SDK(我需要它向后兼容)。所以一定要设置好类型。不像文档所说的那样自动。

关于android - Camera.setPreviewDisplay() 抛出异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1048739/

10-09 04:15