我想将.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:断言`pcm'失败。
中止即可。
这里应该是 nframes 值,以及我应该如何向音频设备写入任何帮助,提前感谢。