cd_paranoia
我正在尝试使用(从包中)播放音频 CD,cdio
并将读取的数据移交给 ALSA 声音输出。当然是缓冲的。我现在的问题如下:如本示例程序中所述,调用paranoia_read ()
返回int16_t*
包含一个扇区(2,352 字节)的音频数据,然后可以将其转换为char*
.
snd_pcm_writei ()
另一方面,ALSA方法需要 a 中的一大块音频数据char*
,其长度将通过使用该snd_pcm_hw_params_get_period_size ()
方法确定,该方法基本上返回发送到声音设备的字节数,直到它触发中断。还出售此示例源代码。
这两种方法几乎肯定会返回不同的值,因为 ALSA 帧的大小与 CD 扇区的大小不同。这意味着我必须以cd-paranoia
某种方式划分数据,以便它们适合 ALSA 的框架结构。或者将 CD 音频数据流式传输到一个大字节数组std::queue<char>
(
有什么提示吗?谢谢你。