Android:pcm#U打开失败无法打开设备'/dev/snd/pcmC0D1p';
一个定制的硬件正在运行安装了音频驱动程序的Android 创建了一个简单的Android应用程序,使用media player播放一些音频,该应用程序在模拟器上进行了测试,因此它确实可以工作 在硬件上运行设备时,来自logcat的错误消息多次显示以下内容:Android:pcm#U打开失败无法打开设备'/dev/snd/pcmC0D1p';,android,linux-kernel,linux-device-driver,embedded-linux,tinyalsa,Android,Linux Kernel,Linux Device Driver,Embedded Linux,Tinyalsa,一个定制的硬件正在运行安装了音频驱动程序的Android 创建了一个简单的Android应用程序,使用media player播放一些音频,该应用程序在模拟器上进行了测试,因此它确实可以工作 在硬件上运行设备时,来自logcat的错误消息多次显示以下内容: 01-01 01:09:16.355 2792-3186/? E/audio_hw_primary﹕ pcm_open(PCM_CARD) failed: cannot open device '/dev/snd/pcmC0D1p':
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上播放非系统音轨?谁在控制它发送到哪个输出?
pcmC0D1p
表示:
pcm
Card 0
Device 1
Capture/Playback p
显然,通过ls/dev/snd/
可以看出,应用程序正在访问的节点并不存在
通常情况下,如果你播放的是mp3文件等非标准声音,那么向其写入内容将处理一切
如果您通过执行ls/dev/snd
只看到一个播放节点,这意味着您只有一个播放节点,我认为(虽然不确定)标准android声音占用了该节点。如果/dev/snd
中存在“pcmC0D1p”设备,则尝试使用命令授予权限
chmod 777/dev/snd/pcmC0D1p
如果仍不工作,则此声卡不可用。
pcmC0D1p
是第一个声卡的第二个PCM设备。为什么Android会尝试访问它是一个只有配置了这个硬件的人才能回答的问题。