安装了音频驱动程序的自定义硬件正在运行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上播放非系统音轨?谁在控制它输出的输出?
答案 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
如果仍然无法使用,则此声卡不可用。