我需要将 flac 文件拆分为多个部分。我正在使用 jFLAC 库来读取 flac 文件
FLACDecoder decoder = new FLACDecoder(inputStream);
然后我试图解码到 SeekPoints 之间的父文件
decoder.decode(seekPointFrom, seekPointTo);
我也不太明白如何正确地获得秒值的这个搜索点。例如,我需要从 0 秒到 150 秒的第一个搜索点。如何获得正确的搜索点对象?Seekpoint cinstructor 是
/**
* The constructor.
* @param sampleNumber The sample number of the target frame
* @param streamOffset The offset, in bytes, of the target frame with respect to beginning of the first frame
* @param frameSamples The number of samples in the target frame
*/
public SeekPoint(long sampleNumber, long streamOffset, int frameSamples) {
this.sampleNumber = sampleNumber;
this.streamOffset = streamOffset;
this.frameSamples = frameSamples;
}
解码器也有一些监听器来监听每个读取块动作。
@Override
public void processPCM(ByteData pcm) {
try {
outputStream.write(pcm.getData(), 0, pcm.getLen());
} catch (IOException e) {
e.printStackTrace();
}
}
写入完成后,我想播放新的 flac 文件,但我的播放器提示该文件不正确。我需要做什么才能打开我的 flac 文件?也许我需要向这个文件或其他东西写一些标题?