|
|
@ -150,6 +150,10 @@ public:
|
|
|
|
return wav_;
|
|
|
|
return wav_;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int GetWavSize() {
|
|
|
|
|
|
|
|
return wav_.size() * sizeof(float);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void ReleaseWav() {
|
|
|
|
void ReleaseWav() {
|
|
|
|
wav_.clear();
|
|
|
|
wav_.clear();
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -188,7 +192,7 @@ public:
|
|
|
|
// 写入头信息
|
|
|
|
// 写入头信息
|
|
|
|
WavHeader header;
|
|
|
|
WavHeader header;
|
|
|
|
header.size = sizeof(header) - 8;
|
|
|
|
header.size = sizeof(header) - 8;
|
|
|
|
header.data_size = wav_.size() * sizeof(float);
|
|
|
|
header.data_size = GetWavSize();
|
|
|
|
header.byte_rate = header.sample_rate * header.num_channels * header.bits_per_sample / 8;
|
|
|
|
header.byte_rate = header.sample_rate * header.num_channels * header.bits_per_sample / 8;
|
|
|
|
header.block_align = header.num_channels * header.bits_per_sample / 8;
|
|
|
|
header.block_align = header.num_channels * header.bits_per_sample / 8;
|
|
|
|
fout.write(reinterpret_cast<const char*>(&header), sizeof(header));
|
|
|
|
fout.write(reinterpret_cast<const char*>(&header), sizeof(header));
|
|
|
|