diff --git a/core/components/audio/wav_recorder.cpp b/core/components/audio/wav_recorder.cpp index 58dce39..99b7fa4 100644 --- a/core/components/audio/wav_recorder.cpp +++ b/core/components/audio/wav_recorder.cpp @@ -9,14 +9,12 @@ void WavRecorder::writeVoice(string filename, uint32_t sample_rate, uint16_t bit WAVHeader wavHeader; // logger->info("writeVoice filename:{} {} {} {} {}", filename, sample_rate, bits_per_sample, num_channels, size); file.open(filename, ios::out | ios::binary | ios::app); - +#if 1 /** * @brief 判断文件大小,文件大小大于等于44字节,说明文件已经存在,不需要写入头部 */ file.seekp(0, ios::end); - uint32_t filesize = file.tellp(); - - if (filesize < 44) { + if (file.tellp() < 44) { wavHeader.initialize(sample_rate, bits_per_sample, num_channels, 0); file.seekp(0, ios::beg); file.write((char*)wavHeader.data(), wavHeader.size()); @@ -26,12 +24,18 @@ void WavRecorder::writeVoice(string filename, uint32_t sample_rate, uint16_t bit /** * @brief 更新头部信息 */ - file.seekp(4, ios::beg); - uint32_t chunk_size = filesize + size - 8; - file.write((char*)&chunk_size, 4); - file.seekp(40, ios::beg); - uint32_t subchunk2_size = filesize + size - 44; - file.write((char*)&subchunk2_size, 4); + { + file.seekp(0, ios::end); + uint32_t filesize = file.tellp(); + + file.seekp(4, ios::beg); + uint32_t chunk_size = filesize - 8; + file.write((char*)&chunk_size, 4); + file.seekp(40, ios::beg); + uint32_t subchunk2_size = filesize - 44; + file.write((char*)&subchunk2_size, 4); + } +#endif file.close(); } \ No newline at end of file