Android: ошибка pcm_open не может открыть устройство '/dev/snd/pcmC0D1p'
Кастомное аппаратное обеспечение работает под управлением 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
Я могу воспроизводить системные уведомления без проблем. Я мог бы также взломать проблему, создав символическую ссылку pcmC0D1p, указывающую на pcmC0D0p, и она работает. Почему андроид пытается воспроизвести несистемную звуковую дорожку на pcmC0D1p? Кто контролирует, на какой выход идет?
2 ответа
pcmC0D1p
средства:
pcm
Card 0
Device 1
Capture/Playback p
Понятно, что к какому бы узлу не обращалось ваше приложение, его нет, как видно из вашего ls /dev/snd/
,
Обычно, если вы воспроизводите нестандартные звуки, такие как mp3-файлы, запись в AudioTrack будет обрабатывать все.
Если вы видите только один узел воспроизведения, выполнив ls /dev/snd
, это означает, что у вас есть только один узел воспроизведения, который, я думаю (хотя и не уверен), занят для стандартных звуков андроида.
Если устройство "pcmC0D1p" присутствует в /dev/snd
затем попробуйте дать разрешение с командой
chmod 777 /dev/snd/pcmC0D1p
Если он все еще не работает, эта звуковая карта недоступна.