没有替代。您必须运行循环并分别转换数组的每个元素。
我为漂浮的短裤做同样的事情:
根据评论编辑4/26/2012public static float[] floatMe(short[] pcms) { float[] floaters = new float[pcms.length]; for (int i = 0; i < pcms.length; i++) { floaters[i] = pcms[i]; } return floaters;}
如果确实有16位PCM,但将其作为字节[],则可以执行以下 *** 作:
public static short[] shortMe(byte[] bytes) { short[] out = new short[bytes.length / 2]; // will drop last byte if odd number ByteBuffer bb = ByteBuffer.wrap(bytes); for (int i = 0; i < out.length; i++) { out[i] = bb.getShort(); } return out;}
然后
float[] pcmAsFloats = floatMe(shortMe(bytes));
除非您使用的是一个怪异且设计不佳的类,该类首先为您提供了字节数组,否则该类的设计人员应该打包字节,以与Java将字节(一次2个)转换为短裤的方式保持一致。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)