У меня есть программа, которая выполняет следующее:
- Открывает PCM по умолчанию с snd_pcm_open () function
- Отправляет сэмплы для воспроизведения звука
- Закрывает PCM с помощью функции snd_pcm_close ()
Программа периодически воспроизводит любые звуковые запросы, которые она получает, но иногда при открытии происходит сбой и возвращается «Устройство или«Ресурс занят».Обычно это происходит, когда есть много звуковых файлов.Однако закрытый звонок всегда успешен.Я предположил бы, что, если закрытие было успешным, PCM был бы немедленно доступен для любого использования.Я также должен добавить, что в системе больше ничего не используется, используя звук.
Возможно ли, что ALSA по-прежнему необходимо очистить некоторые ресурсы после закрытия?Разве интерфейс PCM не предназначен для частого открытия и закрытия?Большинство примеров в Интернете открывают поток PCM при запуске и закрывают его при завершении работы.