0

我正在使用 Java 中的 WAV 文件并创建了一个波形,但它只能显示来自 16 位文件的波形。我为样本帧创建一个循环,为通道创建另一个循环,允许为每个通道创建波形。

for (int indexNumSampleFrames = 0; indexNumSampleFrames < intNumSampleFrames; indexNumSampleFrames++) {
    for (int indexNumChannels = 0; indexNumChannels < intNumChannels; indexNumChannels++) {

        long lgnAmplitude = 0;

        lgnAmplitude = (short) ( arrayData[intPointer] & 0xff) | 
                   (short) ((arrayData[intPointer + 1] & 0xff) << 8);

        intPointer += intBytesPerSample;

        matrixAmplitudes[indexNumChannels][intSampleIndex] = lgnAmplitude;
    }

    intSampleIndex++;
}

我正在努力创建 24 位和 32 位的波形......我试图找到任何解决方案但我找不到,我还尝试了以下代码但没有成功。

lgnAmplitude = (long) ( arrayData[intPointer] & 0xff) | 
                               (long) ((arrayData[intPointer + 1] & 0xff) << 8) |
                               (long) ((arrayData[intPointer + 2] & 0xff) << 16);

提前致谢!

4

0 回答 0