1

例如,这是如何使用pulseaudio: http: //freedesktop.org/software/pulseaudio/doxygen/pacat-simple_8c-example.html

但我不清楚如何简单地播放 wav 文件或 ogg 文件。

4

2 回答 2

1

示例代码将播放文件中的原始 PCM 数据。诀窍是将 wav 文件中的数据转换为这种格式。Microsoft wav 文件如下所示:

https://ccrma.stanford.edu/courses/422/projects/WaveFormat/

Wav 文件只存储原始 PCM 数据。您只需从 wav 文件中剥离标题并将其余部分转储到文件中(扩展名无关紧要,但我喜欢使用 .raw)。也就是说,您可以编写一个程序:将字节 44 之后的所有内容复制到一个新文件中,或者直接将之后的所有内容读入缓冲区。将任一格式传递给 pulseaudio 示例,您应该一切顺利。

需要注意的事项:文件的字节顺序和您的系统;位深度;通道数。这些在 wav 标题中,您可能必须在播放数据之前阅读它们并告诉 pa_simple。虽然,我不确定 pa_simple 是否会为您检测到此信息。我喜欢使用异步实现,我只是直接输入格式。

-E

于 2012-12-21T21:33:25.117 回答
0

linux-commands-examples - pacat

pacat --list-file-formats

aiff    AIFF (Apple/SGI)
au  AU (Sun/NeXT)
avr AVR (Audio Visual Research)
caf CAF (Apple Core Audio File)
flac    FLAC (Free Lossless Audio Codec)
htk HTK (HMM Tool Kit)
iff IFF (Amiga IFF/SVX8/SV16)
mat MAT4 (GNU Octave 2.0 / Matlab 4.2)
mat MAT5 (GNU Octave 2.1 / Matlab 5.0)
mpc MPC (Akai MPC 2k)
oga OGG (OGG Container format)
paf PAF (Ensoniq PARIS)
pvf PVF (Portable Voice Format)
raw RAW (header-less)
rf64    RF64 (RIFF 64)
sd2 SD2 (Sound Designer II)
sds SDS (Midi Sample Dump Standard)
sf  SF (Berkeley/IRCAM/CARL)
voc VOC (Creative Labs)
w64 W64 (SoundFoundry WAVE 64)
wav WAV (Microsoft)
wav WAV (NIST Sphere)
wav WAVEX (Microsoft)
wve WVE (Psion Series 3)
xi  XI (FastTracker 2)
于 2018-08-13T05:05:01.160 回答