0

在遵循爱普生关于 Moverio BT 35E 上的相机访问的文档后,我只需要预览相机输出,但我无法开始我的捕获会话。

链接到文档:(https://tech.moverio.epson.com/en/bt-35e/developers_guide/developing_android_apps.html#ac2-3-2

问题似乎源于 CameraDevice.startCapture() 方法。我已将输出记录到我的设备,输出为 -1(失败)...

public void startCamera() {
    mCameraManager = new CameraManager(this);
    try {
        mCameraDevice = mCameraManager.open(mCaptureStateCallback, null, mSurfaceView.getHolder());
    } catch (IOException e) {
        e.printStackTrace();
    }

    mCameraDevice.startCapture();
}

@Override
protected void onResume() {
    super.onResume();

    if(mCameraDevice != null) {
        mCameraDevice.startCapture();
        mTextView.setText(Integer.toString(mCameraDevice.startCapture()));
    } else {
        mTextView.setText("CameraDevice is Null");
    }
}

据我所知,我只需要设置相机管理器,使用 statecallback 方法调用 .open 方法,然后运行 ​​.startCapture 方法。这种方法失败了,但我似乎无法弄清楚为什么......

文档什么也没告诉我,除了 -1 的输出意味着该方法失败,但没有告诉我原因。

4

1 回答 1

0

弄清楚了!我设置了错误的权限。即使我只需要检索相机图像并显示它,我也需要添加保存文件和录制音频的权限。我的猜测是默认情况下需要它来启动捕获会话!

添加:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.CAMERA" />

到清单文件

于 2019-11-12T10:06:32.640 回答