gpt4 book ai didi

Android alsa snd_pcm_open default no such file o 目录

转载 作者:太空宇宙 更新时间:2023-11-04 02:53:55 25 4
gpt4 key购买 nike

我尝试为 Android 实现 baresip,它使用自定义 alsa 模块来控制音频设备。

此模块使用此代码打开设备处理程序:

err = snd_pcm_open(&st->write, device, SND_PCM_STREAM_PLAYBACK, 0);

我尝试将 'default'、'plug:hw:0,0'、'hw:0,0'、'hw:00,0' 传递给此函数。所有结果返回错误-2,表示没有该文件。

我有两个问题。是否有可能将一些字符串传递给此函数以正确处理音频设备?通常,使用此功能直接从 jni 与音频设备交互是真的吗?

谢谢大家!

最佳答案

您只能在获得 root 权限的设备上使用 Android 中的 ALSA。

如果您想在原装设备上通过 native 代码播放音频,您至少有两种选择:

  1. 使用官方稳定的API:OpenSL ES(这需要Android 2.3+版本)
  2. Android 有一个原生的 OpenAL 实现,它使用 JNI 调用 Java AudioTrack:https://github.com/AerialX/openal-soft-android (这适用于 Android 2.1+ 版本)

我建议仅当您拥有需要移植到 Android 的现有代码,或者出于某种原因必须支持 Android 2.1 版时才使用 OpenAL。在其他情况下,OpenSL ES 是正确的选择。

关于Android alsa snd_pcm_open default no such file o 目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19445832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com