Android、msm_pcm_out 设备和 ALSA 库
谁能告诉我是否可以在Android的本机C代码中直接使用alsa lib?
因为我必须从本机 C 代码套接字 fd 接收原始数据,所以我认为最好也在本机 C 代码中播放它。我搜索了很多,发现可以使用msm_pcm_out设备直接播放pcm数据,但我在我的平台上找不到这个设备。所以我最后的选择是使用 alsa lib。我的问题是:
我可以自己添加msm_pcm_out设备吗?并像示例 playwav.c 一样使用它?
如果无法添加 msm_pcm_out 设备,我可以在本机 C 中使用 alsa lib 吗?
如果我上面提到的都是不可能的,有什么建议吗?
谢谢。
Could anyone tell me if it is possible to use alsa lib directly in native C code in Android?
Because I must receive raw data from native C code socket fd, I think it is better to play it out in native C, too. I have searched a lot and found that I could play pcm data directly by using msm_pcm_out device, but I could not find this device in my platform. So my last choice is using alsa lib. My questions are:
Could I add msm_pcm_out device by myself ? And use it just like the sample playwav.c?
If adding the msm_pcm_out device is not possible, could I use alsa lib in native C?
If all I mentioned above are impossible, any suggestion?
Thank you.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
搜索结果:
MSM_PCM_*是高通MSM7K系列芯片中指定的设备,所以其他平台没有这个!
看来直接在本机 C 中使用 ALSA lib 是不可能的,因为 ALSA 资源将被系统占用。
更新:使用ALSA API 播放不行,但录音可以! (奇怪……)
我最后的选择可能是使用 OpenSL ES...
任何建议将不胜感激。
Search result :
MSM_PCM_* are the specified devices in Qualcomm MSM7K series chip, so other platform would not have this !
It seems that using ALSA lib directly in native C is not possible because the ALSA resource would be engaged by system.
Update : Use ALSA API to do the play would not work, but record works ! (Strange...)
My last choice might be using the OpenSL ES...
Any suggestion would be appreciated.