Android:pcm_open失败无法打开设备'/ dev / snd / pcmC0D1p'

时间:2015-09-04 20:09:18

标签: android linux-kernel linux-device-driver embedded-linux tinyalsa

安装了音频驱动程序的自定义硬件正在运行Android。

创建了一个简单的Android应用程序,可以使用媒体播放器播放某些音频,该应用程序在模拟器上进行测试,因此可以肯定。

在硬件上运行设备时,来自logcat的错误消息会多次显示以下内容:

01-01 01:09:16.355    2792-3186/? E/audio_hw_primary﹕ pcm_open(PCM_CARD) failed: cannot open device '/dev/snd/pcmC0D1p': No such file or directory
01-01 01:09:16.375    2792-3186/? E/audio_hw_primary﹕ pcm_open(PCM_CARD) failed: cannot open device '/dev/snd/pcmC0D1p': No such file or directory
01-01 01:09:16.435     2792-375/? E/AudioSink﹕ received unknown event type: 1 inside CallbackWrapper !
/ dev / snd /下有

controlC0
pcmC0D0c
pcmC0D0p
timer

我可以毫无问题地播放系统通知。我也可以通过创建指向pcmC0D0p的符号链接pcmC0D1p来解决问题,并且它可以工作。为什么android试图在pcmC0D1p上播放非系统音轨?谁在控制它输出的输出?

2 个答案:

答案 0 :(得分:1)

pcmC0D1p表示:

pcm
Card 0
Device 1
Capture/Playback p

显然,您的应用访问的节点无法通过您的ls /dev/snd/看到。

通常情况下,如果你正在播放像mp3文件这样的非标准声音,写入AudioTrack将会处理所有事情。

如果您只通过ls /dev/snd看到一个播放节点,则表示您只有一个播放节点,我认为(不确定)是标准Android声音占用的。

答案 1 :(得分:0)

如果" pcmC0D1p"设备存在于/dev/snd中,然后尝试通过命令

授予权限
chmod 777 /dev/snd/pcmC0D1p

如果仍然无法使用,则此声卡不可用。