diff --git a/Userland/Libraries/LibAudio/WavWriter.cpp b/Userland/Libraries/LibAudio/WavWriter.cpp index 3c295a3cf6..4999b6a9e6 100644 --- a/Userland/Libraries/LibAudio/WavWriter.cpp +++ b/Userland/Libraries/LibAudio/WavWriter.cpp @@ -50,9 +50,10 @@ ErrorOr WavWriter::write_samples(ReadonlySpan samples) u8 left = static_cast((sample.left + 1) * scale); u8 right = static_cast((sample.right + 1) * scale); TRY(m_file->write_value(left)); - TRY(m_file->write_value(right)); + if (m_num_channels >= 2) + TRY(m_file->write_value(right)); } - m_data_sz += samples.size() * 2 * sizeof(u8); + m_data_sz += samples.size() * m_num_channels * sizeof(u8); break; } case PcmSampleFormat::Int16: { @@ -61,9 +62,10 @@ ErrorOr WavWriter::write_samples(ReadonlySpan samples) u16 left = AK::convert_between_host_and_little_endian(static_cast(sample.left * scale)); u16 right = AK::convert_between_host_and_little_endian(static_cast(sample.right * scale)); TRY(m_file->write_value(left)); - TRY(m_file->write_value(right)); + if (m_num_channels >= 2) + TRY(m_file->write_value(right)); } - m_data_sz += samples.size() * 2 * sizeof(u16); + m_data_sz += samples.size() * m_num_channels * sizeof(u16); break; } default: