pcm2List function
Implementation
Future<Float32List> pcm2List(String filePath) async {
Uint8List pcmData = await File(filePath).readAsBytes();
int sampleSize = 2;
int numSamples = pcmData.length ~/ sampleSize;
Float32List floatList = Float32List(numSamples);
// 使用 ByteData 处理字节顺序和符号扩展
ByteData byteData = pcmData.buffer.asByteData();
for (int sampleIndex = 0; sampleIndex < numSamples; sampleIndex++) {
// 假设 PCM 数据为小端字节序
int sample = byteData.getInt16(sampleIndex * sampleSize, Endian.little);
floatList[sampleIndex] = sample / 32768.0;
}
return floatList;
}