使用alsa将音频文件写入音频设备

时间:2013-10-07 12:53:03

标签: wav alsa

我想将.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 值,以及我应该如何向音频设备写入任何帮助,提前感谢。

0 个答案:

没有答案