我想将 .wav 文件写入音频设备。为此,我使用了 alsa。我拿了一个样本文件。这里我将文件样本数据复制到缓冲区。
file.read(reinterpret_cast<char*>(&buff),wave.dataHeader.chunkSize);
int nframes = wave.dataHeader.chunkSize/2;
while( nframes > 0 ){
int r = snd_pcm_writei (playback_handle,
reinterpret_cast<const char*>(buff), nframes);
nframes = nframes - r;
if(r < 0){
fprintf (stderr, "write to audio interface failed (%s)\n",
snd_strerror (err));
exit (1);
}
buff += r * 2;
}
我的文件数据是
文件大小:2084
FmtChunk 大小:16
格式类型:1
通道:2
采样率:48000
字节/秒:192000
位/采样:16
这里给出错误
a.out: pcm.c:1250: snd_pcm_writei: Assertion `pcm' failed。
中止。
这里nframes值应该是什么,我应该如何向音频设备写入任何帮助,提前感谢。