在 Google Cardboard Activity/ RajawaliVRActivity 中注销传感器

Unregister sensors in a Google Cardboard Activity/ RajawaliVRActivity

我正在为 android 开发 360 视频播放器应用程序。我有 3 种播放模式:触摸模式、陀螺仪模式和纸板模式。我可以通过硬纸板立体渲染器看到陀螺仪模式和硬纸板模式,但我找不到停止触摸模式方向传感器的方法。

通常,我会使用 SensorManager,然后在对象中使用此函数:sm.unregisterListener(this, sm.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR)); 或作为应用程序的 de SensorListener 的 class。问题是这项工作现在是在 Google Cardboard 代码中本地完成的,我看不到传感器更改的处理位置。

因此,我的问题是:除了上述方法之外,还有什么方法可以停止方向传感器吗?或者其他方法让这个方法起作用?

我试过将它与视图、渲染器和 activity 一起使用,但无法正常工作。我还搜索了 google cardboard api 但没有找到任何有用的东西。 如果无法做到这一点,是否可以针对不同的播放模式使用两个独立的渲染器和关联的视图?如果可以,我将不胜感激有关如何让它们使用的任何指南工作。

如果您需要更多信息,请问我,我很乐意为您解释其他任何事情。

我想出了一个技巧,通过在 RajawaliCardboardRenderer class.[=15 中的函数 onDrawEye() 中将 ViewMatrix 应用于 eyeMatrix =]

@Override
public void onDrawEye(Eye eye) {
    eyeMatrix.setAll(getCurrentCamera().getViewMatrix());
    eyeQuaternion.fromMatrix(eyeMatrix);
    getCurrentCamera().setOrientation(eyeQuaternion);
}