2

这是我的代码

    private static int Fs = 44100; 
    private byte recorderAudiobuffer[] = new byte [1024];
    AudioRecord recorder = new  AudioRecord(AudioSource.MIC, Fs, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, 4096);
    //start recorder
    recorder.startRecording();

一个值由recorderAudiobuffer[]的bin[n]和bin[n+1]标识。

这些值是什么单位?

4

2 回答 2

0

元素之间的差异recordAudiobuffer[]为 1/44100 秒,因为您的采样率为 44100 Hz。

至于它们持有的字节的值,它可能意味着任何声级。如果灵敏度低,字节的最大值可能是,我不知道,12,即使你录制的声音很大。另一方面,随着灵敏度的提高,255 可能是耳语,之后就受到了抨击。

于 2013-05-17T02:43:46.977 回答
0

这更像是一个音频问题:),但在这里,尽可能简单,声音数据有两个维度,一个是基于时间的,另一个是基于样本的,所以你有一个声音在 44100 *(采样率例如每个幅度 16 位)您需要 705600 位一秒或 88200,在这种情况下,如果您有相同的采样,您将有 11.6 毫秒的缓冲区。

当然,您是在询问幅度值。

希望这对您有所帮助并享受您的工作。

于 2013-05-17T02:45:34.483 回答