Почему мой перезаписанный аудиофайл воспроизводится голосом бурундука?

Я использую проект NAudio 1.72 для записи новых аудиофайлов и редактирования существующих файлов wav. Я заметил, что всякий раз, когда я открываю wav-файл со скоростью 172 кбит / с и записываю часть файла, воспроизведение звучит как бурундук.

Недавно записанные файлы WAV показывают скорость передачи данных 128 кбит / с. И я не нахожу проблему бурундука с файлами WAV 128kbps. Кто-нибудь думает, что это проблема, потому что битовые скорости не совпадают?

Как мне решить это?

Обратите внимание: я пишу код на C#, использую ссылку на проект NAudio для записи и редактирования wav-файлов. Я использую медиаэлемент WPF для воспроизведения любого файла WAV.

1 ответ

Ну, после небольшого исследования я нашел это несколько полезным. Тем не менее, я боюсь, что у меня есть проблемы с регрессом. Все еще работаем над тем, чтобы приведенная ниже стратегия работала лучше.

Хотя приведенный ниже метод преобразует wav-файл со скоростью 176 кбит / с в 128 кбит / с и воспроизводится хорошо, приложение вылетает.

    private string OpenMedia(string filename)
    {
        using (var reader = new WaveFileReader(filename))
        {
            int bitrate = reader.WaveFormat.AverageBytesPerSecond * 8;
            if (bitrate > 128000)
            {
                MessageBox.Show("This wav file has a bit rate higher than 128 kbps : " +

    bitrate);

                int channel = reader.WaveFormat.Channels;
                if (channel > 1)
                {
                    MessageBox.Show("This wav file was not created in Mono channel : " +

    channel);
                }
                int samplerate = reader.WaveFormat.SampleRate;
                if (samplerate > 8000)
                {
                    MessageBox.Show("This wav file has a sample rate > 8000 : " + samplerate);
                    var newFormat = new WaveFormat(8000, 16, 1);
                    using (var conversionStream = new WaveFormatConversionStream(newFormat,

    reader))
                    {
                        WaveFileWriter.CreateWaveFile(filename, conversionStream);
                    }
                }
            }
        }
        return filename;
    }
Другие вопросы по тегам