首页 > 解决方案 > 是否可以同时使用 MIC、CAMCORDER 和加速度计进行录制?

问题描述

我正在尝试同时访问三个传感器。我需要加速度计数据来检测人是在跑步、走路还是静止不动,并将 MIC 和 CAMERAMIC 数据作为自适应滤波器的输入。

我尝试使用线程,每个传感器一个线程,但它们并不能真正并行工作。

//declaring 3 threads
public class firstMicThread implements Runnable {
    public void run() {
        isRecording = true;
        Log.i("Thread 1 ", "first thread started" + String.valueOf(isRecording));
        startRecording(audiosource);

    }
}
public class secondMicThread implements Runnable {
    public void run() {
        isRecording = true;
        Log.i("Thread 2 ", "second thread started" + String.valueOf(isRecording));
        startRecording(audiosource2);

    }
}
public class accelerometerThread implements Runnable {
    public void run() {
        isRecording = true;
        Log.i("Thread 3 ", "acceletometer started " + String.valueOf(isRecording));
       // onResume();
        sensorManager.registerListener( RecordandStore.this, accelerometer, SensorManager.SENSOR_DELAY_NORMAL );
        Log.i("Thread 3 ", "acceletometer listener registered" + String.valueOf(isRecording));
    }
}

 private View.OnClickListener btnClick = new View.OnClickListener() {
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn_startrec: {
                if (checkpermissionfromdevice()) {
                    Log.i("Start click:", "permissions true");

                    // first mic
                    Runnable firstmicR = new firstMicThread();
                    Thread firstmicthread = new Thread( firstmicR);
                    // second mic
                    Runnable secondmicR = new secondMicThread();
                    Thread secondmicthread = new Thread( secondmicR);
                    // accelerometer
                    Runnable acceletometerR = new accelerometerThread();
                    Thread accelerometerthread = new Thread(acceletometerR);

                    firstmicthread.start();
                    secondmicthread.start();
                    accelerometerthread.start();
                    startrec.setEnabled(false);
                    stoprec.setEnabled(true);}
                else { // if check permissionfordevice == false
                    requestPermission();
                }
                break;}

标签: androidandroid-sensors

解决方案


推荐阅读