Есть ли способ воспроизвести файл CCITT u-Law .wav на С#?

Не сумев найти способ программно преобразовать волновой файл CCITT u-Law в файл PCM (который требует Soundplayer) в соответствии с этим вопросом: Как воспроизвести файл, отличный от PCM, или преобразовать его в PCM на лету?

(SOX выглядит так, как будто это может работать, но я не могу найти примеры преобразования из файла CCITT u-Law .wav в «обычный» (PCM) файл .wav с использованием его из С#),

Интересно, я делаю это неправильно: может быть, мне следует найти способ воспроизводить файлы CCITT u-Law .wav, а не пытаться конвертировать их в файл PCM .wav.

Кто-нибудь знает, как это возможно? SoundPlayer всегда говорит: «Sound API поддерживает только воспроизведение волновых файлов PCM», так что, может быть, есть другой API, который я могу использовать?

Примечание. Alvas.Audio также «не подходит», поскольку он не является бесплатным или открытым исходным кодом.


person B. Clay Shannon    schedule 12.09.2012    source источник
comment
Эта библиотека утверждает, что поддерживает ее: alvas.net/alvas.audio.aspx   -  person TJD    schedule 13.09.2012
comment
@TJD: alvas.audio может работать, но, как я уже говорил, это стоит денег, и мой работодатель не будет за это платить.   -  person B. Clay Shannon    schedule 13.09.2012
comment
@Bjorn: я также не нашел ссылок на то, как это сделать в libsndfile - я думаю, что он может конвертировать между mp3 и wav, а также между aiff и wav, но я не видел никаких преобразований между wav/pcm и wav /ccitt у-закон.   -  person B. Clay Shannon    schedule 13.09.2012
comment
Тот, кто нажал кнопку Антарктики, должен объяснить, почему.   -  person B. Clay Shannon    schedule 13.09.2012
comment
Просто попробуйте libsndfile: в нем есть утилиты для преобразования и воспроизведения любого формата, который он может прочитать.   -  person Bjorn Roche    schedule 13.09.2012


Ответы (1)


Это можно сделать с помощью кода новичка по адресу: http://www.codeproject.com/Articles/175030/PlaySound-A-Better-Way-to-Play-Wav-Files-in-C.?msg=4366037#xx4366037xx

В моем случае, по крайней мере, мне пришлось заменить все строчные x на прописные x, чтобы заставить его работать.

person B. Clay Shannon    schedule 13.09.2012