0

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

4

0 回答 0