Исключение преобразования потока ACM, отображающее AcmNotPossible - PullRequest
0 голосов
/ 06 февраля 2012

При распаковке кадров Mp3 с сервера возникает вышеупомянутое исключение, когда Mp3 проигрывается в течение 10–15 с. Моё приложение является клиент-серверным приложением. Я отправляю Mp3-кадры, составляя Mp3-пакеты и сериализуя их через Сетевой поток. Я использую NAudio API с открытым исходным кодом для сжатия и распаковки кадров и воспроизведения Mp3.Я получаю следующее исключение с помощью Stack Trace.

NAudio.MmException.Try (результат MmResult, функция String)

в NAudio.Wave.Compression.AcmStreamHeader.Convert (Int32 bytesToConvert, Int32 & sourceBytesConverted)

в NAudio.Wave.Compression.AcmStream.Convert (Int32 bytesToConvert, Int32 & sourceBytesConverted)

в NAudio.Wave.AcmMp3FrameDecompressor.DecompressFrame (кадр Mp3Frame, Byte [] dest, Int32 destOffset)

в Client.Audio.SoundPlayer.StreamMP3 (состояние объекта)

1 Ответ

1 голос
/ 07 февраля 2012

AcmNotPossible - это код ошибки, возвращаемый функцией acmStreamConvert Windows, которая вызывает кодек MP3 ACM. Эта ошибка, скорее всего, указывает на недопустимый кадр MP3 или на то, что вы передали слишком много кадров одновременно. Насколько ты уверен, что получаешь целые MP3-кадры? Хорошей идеей будет отладить подобные проблемы, также записав полученные данные в файл MP3, а затем проверив, можно ли воспроизвести их, как ожидается.

...