如何在 UNIX 系统上播放 PCM 文件?

Coo*_*ter 5 audio mp3 c pcm

我试图弄清楚如何将libmad与 C一起使用。问题是,libmad 将音频文件转换为 .pcm 文件,但我找不到播放这些文件的方法。没有简单的 .pcm 播放器,每次我尝试用它打开 pcm 文件时,Audacity 都会崩溃。有人对这个有经验么?我愿意将这些 pcm 文件转换为 wav 文件或其他一些格式,但同样没有直接的方法来做到这一点(至少我还没有找到)。

qua*_*ote 3

您确定获得有效的 PCM 数据吗?您获得什么类型的 PCM?

基本 PCM用于音频 CD和从 CD 转录的WAV 文件;它应该可以被任何东西播放。具体来说,它是 16 位(每个样本)、44.1 kHz(采样率)、立体声(2 通道)。播放这种 PCM 就像cat file.pcm > /dev/audio(或/dev/dsp或其他适当的音频设备)一样简单。

libmad 主页表明libmad 可能默认输出 24 位 PCM,如果您期望标准的 16 位 PCM,您的播放器软件可能会被它混淆。如果您还没有这样做,请根据madlld(libmad 低级 API 教程)检查程序的 libmad 使用情况,以确保您从库中获得正确的输出。

由于 PCM 数据不像 WAV 文件那样包含标头,因此您可能需要为程序指定 PCM 格式才能正确加载文件。Audacity 应该能够处理任何标准 PCM 格式。

libmad由于库中的错误或代码对库的使用不当,您也可能从 中获得无效的 PCM 输出。