Android、msm_pcm_out 设备和 ALSA 库

发布于 2024-12-02 13:50:03 字数 369 浏览 0 评论 0原文

谁能告诉我是否可以在Android的本机C代码中直接使用alsa lib?

因为我必须从本机 C 代码套接字 fd 接收原始数据,所以我认为最好也在本机 C 代码中播放它。我搜索了很多,发现可以使用msm_pcm_out设备直接播放pcm数据,但我在我的平台上找不到这个设备。所以我最后的选择是使用 alsa lib。我的问题是:

  1. 我可以自己添加msm_pcm_out设备吗?并像示例 playwav.c 一样使用它?

  2. 如果无法添加 msm_pcm_out 设备,我可以在本机 C 中使用 alsa lib 吗?

  3. 如果我上面提到的都是不可能的,有什么建议吗?

谢谢。

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:

  1. Could I add msm_pcm_out device by myself ? And use it just like the sample playwav.c?

  2. If adding the msm_pcm_out device is not possible, could I use alsa lib in native C?

  3. If all I mentioned above are impossible, any suggestion?

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

别把无礼当个性 2024-12-09 13:50:03

搜索结果:

  1. MSM_PCM_*是高通MSM7K系列芯片中指定的设备,所以其他平台没有这个!

  2. 看来直接在本机 C 中使用 ALSA lib 是不可能的,因为 ALSA 资源将被系统占用。

    更新:使用ALSA API 播放不行,但录音可以! (奇怪……)

  3. 我最后的选择可能是使用 OpenSL ES...

任何建议将不胜感激。

Search result :

  1. MSM_PCM_* are the specified devices in Qualcomm MSM7K series chip, so other platform would not have this !

  2. 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...)

  3. My last choice might be using the OpenSL ES...

Any suggestion would be appreciated.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文