在流式传输音乐时,我正在获取 short[] 类型的 pcm 数据,我想将其保存到我的 android 设备中的文件中,以便稍后再次播放(使用 AudioTrack)。我不希望音乐存储在内存和 CPU 上有效。
如何将 short[] 保存到文件,因为我没有看到任何函数 in.write(short[])?
我怎样才能减少保存这个文件的空间\cpu?
最佳答案
用 DataOutputStream 包装你的 FileOutputStream:
DataOutputStream doStream = new DataOutputStream(new BufferedOutputStream(fileOutputStream));
doStream.writeInt(numberArray.length); //Save size
for (int i=0;i<numberArray.length;i++) {
doStream.writeShort(numberArray[i]); //Save each number
}
读回的方式相同:
DataInputStream diStream = new DataInputStream(new BufferedInputStream(fileInputStream));
int size = diStream.readInt(); //Read size
short[] data = new short[size]; //Create new array with required length
for (int i=0;i<size;i++) {
data[i] = diStream.readShort(); //Read each number
}
关于java - 在 cpu 和空间低的 java (android) 中保存 short[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8254804/