例如,这是如何使用pulseaudio:http://freedesktop.org/software/pulseaudio/doxygen/pacat-simple_8c-example.html
但我不清楚如何简单地播放wav文件或ogg文件。
答案 0 :(得分: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
答案 1 :(得分: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)