【问题标题】:Unregister sensors in a Google Cardboard Activity/ RajawaliVRActivity在 Google Cardboard Activity/ RajawaliVRActivity 中注销传感器
【发布时间】:2015-09-09 16:26:05
【问题描述】:

我正在开发一款适用于 Android 的 360 度视频播放器应用。我有 3 种播放模式:触摸模式、陀螺仪模式和纸板模式。我可以使用纸板立体渲染器看到陀螺仪模式和纸板模式,但我找不到停止触摸模式的方向传感器的方法。

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

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

我尝试将它与视图、渲染器和活动一起使用,但无法使其工作。我也搜索了 google cardboard api,但没有发现任何有用的东西。 如果无法做到这一点,是否可以为不同的播放模式使用两个单独的渲染器和关联的视图?如果是这样,我将不胜感激任何关于如何让它们工作的指南。

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

【问题讨论】:

    标签: android google-cardboard rajawalivr


    【解决方案1】:

    我想出了一个技巧,通过在RajawaliCardboardRenderer 类中的函数onDrawEye() 中将ViewMatrix 应用于eyeMatrix

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

    【讨论】:

    • 不客气。无论如何,我看到你已经可以使用触摸模式了。您能在下面分享您对我的问题的回答吗? stackoverflow.com/questions/32827438/…
    • 当然!如果你不介意的话,我稍后会发布它。可以肯定的是,您想知道如何处理触摸事件以旋转 3D 对象,对吧?
    • 其实我是用 Rajawali 来播放 CardBoardView 中的视频,我想用触摸事件来移动相机而不是移动头部(传感器)。我不确定它是否是 3D 对象。
    • 我将向您展示我正在使用的方法,但我正在旋转正在播放视频的球体而不是相机。
    • 我已经尝试过这个答案,但它不起作用任何人都可以帮助我解决这个问题
    猜你喜欢
    • 2015-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多