Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
libgdx中的拍击声检测_Libgdx - Fatal编程技术网

libgdx中的拍击声检测

libgdx中的拍击声检测,libgdx,Libgdx,我只是好奇。我正在制作一个非常简单的游戏,我想在用户鼓掌时加入游戏逻辑(比如发出响亮的声音)。在libgdx中可能吗?在libgdx中有录音机接口。您可以通过PC或Android手机上的麦克风访问PCM数据 int samples = 44100; boolean isMono = true; AudioRecorder recorder = Gdx.audio.newAudioRecorder(samples, isMono); 这将在单声道模式下创建采样率为44.1khz的录音机。如果无法

我只是好奇。我正在制作一个非常简单的游戏,我想在用户鼓掌时加入游戏逻辑(比如发出响亮的声音)。在libgdx中可能吗?

在libgdx中有录音机接口。您可以通过PC或Android手机上的麦克风访问PCM数据

int samples = 44100;
boolean isMono = true;
AudioRecorder recorder = Gdx.audio.newAudioRecorder(samples, isMono);
这将在单声道模式下创建采样率为44.1khz的
录音机。如果无法创建记录器,将引发GdxRuntimeException

样本可以读取为16位有符号PCM:

int seconds = 5;
final short[] data = new short[samples * seconds];
recorder.readSamples(data, 0, data.length);

JavaScript/WebGL后端不支持音频录制。

我希望它每帧录制一次声音并获得振幅。但是如何每帧录制一次声音呢?根据我在libgdx中的说法,你不能每帧都获得声音振幅,但是在android中它可以并且可以通过接口使用。通常,您可以在单独的线程中读取麦克风,进行一些音频分析(预定义窗口上的RMS),并使用postRunnable向GLThread触发事件。