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