1

我正在使用此代码来记录当前的声音。我现在需要一些处理来检测音乐中的节拍。我想根据传入的音乐打开/关闭 LED。我认为 BeatDetect 对我的项目来说是一个有用的库,但是我找不到一个很好的例子。谁能给我一个简单的例子来使用?还是参考?

public void start() {
    initializeMediaRecorder();

    handler.postDelayed(new Runnable() {
        @Override
        public void run() {
            notifySample(getAmplitude());

            handler.postDelayed(this, 150);
        }
    }, 150);
}

public void stop() {
    handler.removeCallbacksAndMessages(null);

    if (mediaRecorder != null) {
        mediaRecorder.stop();
        mediaRecorder.reset();
        mediaRecorder.release();
        mediaRecorder = null;
    }
}

private double getAmplitude() {
    if (mediaRecorder != null) {
        return mediaRecorder.getMaxAmplitude();
    } else {
        return 0;
    }
}

private void initializeMediaRecorder(){
    try {
        if(mediaRecorder == null) {
            mediaRecorder = new MediaRecorder();
            mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
            mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
            mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
            mediaRecorder.setOutputFile("/dev/null");
            mediaRecorder.prepare();
            mediaRecorder.start();
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}
4

0 回答 0