Closed zhushenwudi closed 8 months ago
Yes. You can use coast_audio_miniaudio to decode flac and coast_audio to encode wav file. Try this code.
// Step1: init audio decoder
final flac = File(filePath);
final flacDataSource = AudioFileDataSource(file: flac, mode: FileMode.read);
final format = MabAudioDecoder.getInfo(filePath).toAudioFormat()!.copyWith(sampleFormat: SampleFormat.int16);
final decoder = MabAudioDecoder(dataSource: flacDataSource, outputFormat: format);
// Step2: init audio encoder
final output = File('converted.wav');
final outputDataSource = AudioFileDataSource(file: output, mode: FileMode.write);
final encoder = WavAudioEncoder(dataSource: outputDataSource, inputFormat: format);
// Step3: allocate temporary buffer
final frames = AllocatedAudioFrames(length: 2048, format: format);
// Step4: encode to wav file
encoder.start();
var isEnd = false;
while (!isEnd) {
frames.acquireBuffer((buffer) {
final result = decoder.decode(destination: buffer);
encoder.encode(buffer.limit(result.frames));
isEnd = result.isEnd;
});
}
encoder.finalize();
great! it works. but i found the code limit the format to int16.
it seems to compress all those above int16 so, int32 can release out?
This issue is stale because it has been open for 30 days with no activity.
This issue was closed because it has been inactive for 7 days since being marked as stale.
hello, how can I convert flac to wav format using this library?