次のことを行うプログラムがあります。
- snd_pcm_open()関数でデフォルトの PCM を開きます
- サンプルを送信してサウンドを再生します
- snd_pcm_close()関数で PCM を閉じます
プログラムは受信したサウンド要求を定期的に再生しますが、オープンに失敗して「デバイスまたはリソースがビジー状態です」というエラーを返すことがあります。これは通常、多くのサウンド ファイルがある場合に発生します。ただし、ヒヤリハットは必ず成功します。クローズが成功した場合、PCM はすぐに他のユーザーが使用できるようになると思います。また、サウンドを使用するシステムには他に何もないことも付け加えておきます。
閉鎖後に ALSA がまだいくつかのリソースをクリーンアップする必要がある可能性はありますか? PCM インターフェイスは頻繁に開いたり閉じたりするように設計されていませんか? インターネット上のほとんどの例では、起動時に PCM ストリームを開き、シャットダウン時に閉じます。