我为 Raspberry Pi 编写了一个 I2S 声音驱动程序。我看起来效果很好。使用 alsa-aplay 我可以播放一些音乐,使用 alsa-arecord 我可以录制一些听起来很棒的声音!
现在,问题是……我用 pjproject/pjsip 交叉编译了一个简单的应用程序,目的是将 Raspberry Pi 用作软件电话。一些附加信息:我使用 Openembedded 构建自己的内核(埃发行版)和 rootfs,也包括 PJproject。PJproject 有一些测试应用程序,其中一个 (pjsystest) 我用来简单地测试我的声音驱动程序是否正常工作。它没有..
pjsysstest 有一些不同的测试选项,例如播放音调和录制音频。通过调试,我可以得出结论,当我开始播放音调选项时,会调用下一个回调。- PCM 播放打开 - PCM 播放硬件参数 - PCM 播放准备 - PCM 播放触发(开始) - PCM 播放触发(停止) - PCM 播放准备
仅使用 aplay: - PCM 播放打开 - PCM 播放硬件参数 - PCM 播放准备 - PCM 播放触发(开始)//当文件结束时: - PCM 播放触发(停止) - PCM 播放硬件空闲 - PCM 播放关闭
使用 pjsystest 进行调试会产生一些奇怪的结果。我不明白为什么第二次调用触发器回调来停止流,然后只调用准备回调(而不是触发器启动回调)。因此没有播放曲调(因为播放流已经停止并且 nog 再次开始)。
现在,我希望你能明白我的问题是什么,也希望有人能在正确的方向上给我一个答案或建议(甚至更好的解决方案)。
非常感谢!
[编辑] 与此同时,我尝试了其他一些 PJproject 示例应用程序:stereotest 和 auddemo。这些实际上正在工作:) 很好,这说明(我认为): - 我的内核和 rootfs 没有任何问题 - 我的驱动程序没有任何问题。
现在的问题是:为什么 PJSYSTEST 不工作。为什么它调用触发器开始然后直接停止它?
[/编辑]