【问题标题】:How to play/pause video in phone using magnetic button of google-cardboard?如何使用谷歌纸板的磁性按钮在手机中播放/暂停视频?
【发布时间】:2016-03-26 05:35:21
【问题描述】:

我正在做 RajawaliVR 的演示,我想使用 google-cardboard 的磁性按钮播放/暂停视频。所以,我该如何实现这一点,请帮忙。

【问题讨论】:

    标签: android video google-cardboard rajawali rajawalivr


    【解决方案1】:

    你可以使用我的帮助类,它是一个监听按钮的服务,一些动作通过接口类发布到主要活动。这是代码

    /**
     * Created by volkanugur
     *
     *    WORK WITH CARDBOARD VERSION 1
     *    =============================
     *               MAGNET
     *    ==========  N-S  ============
     */
    
    
        public class CardBoardButtonHelper extends Service implements SensorEventListener {
    
            private SensorManager sensorManager = null;
            private float __SENSOR_OLD_POSITION__ = -1;
            long timestamp = 0;
            long timestamp_ee = 0;
            Singleton __ = Singleton.getInstance();;
    
    
            @Nullable
            @Override
            public IBinder onBind(Intent intent) {
                return null;
            }
    
            @Override
            public void onCreate() {
                super.onCreate();
                initsensor();
            }
    
    
            private void initsensor() {
    
                sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
    
                // Register magnetic sensor
                sensorManager.registerListener(this,
                        sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD),
                        SensorManager.SENSOR_DELAY_UI);
    
    
            }
    
    
            @Override
            public void onSensorChanged(SensorEvent event) {
    
                synchronized (this) {
    
                    if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) {
    
                        float X = event.values[0];
    
                        Log.e("Sens",X+"");
    
                        if (__SENSOR_OLD_POSITION__!=-1) {
                            if (Math.abs(X - __SENSOR_OLD_POSITION__) > 50) {
                                if (Math.abs(timestamp_ee-timestamp)>1300) {
                                    Vibrator v = (Vibrator) __.get__MAIN__().getSystemService(Context.VIBRATOR_SERVICE);
                                    v.vibrate(500);
                                    ((CardButtonTrigger) (__.get__MAIN__())).CardButton_Triggered();
                                    timestamp_ee = System.currentTimeMillis();
                                }
                                timestamp = System.currentTimeMillis();
                            }
                        }
                        __SENSOR_OLD_POSITION__ = X;
                    }
    
                }
            }
    
            @Override
            public void onAccuracyChanged(Sensor sensor, int accuracy) {
    
            }
    
    
        }
    

    【讨论】:

    • 这个代码怎么用??那个单例类在哪里?
    • 嗨! ,这个类是服务单例,只是存储上下文和一些整数地址,所以你可以将它们拉到算法并放置你的应用程序。
    猜你喜欢
    • 2014-08-30
    • 1970-01-01
    • 2020-08-31
    • 2020-04-12
    • 1970-01-01
    • 1970-01-01
    • 2022-06-12
    • 2014-03-05
    • 1970-01-01
    相关资源
    最近更新 更多