開閉PCM私はありませんプログラムを持って、次のALSA:オンザフライ
- はsnd_pcm_open()
- は、サウンドを再生するためにサンプルを送り機能をデフォルトPCMを開きます
- はsnd_pcm_close()機能でPCMを閉じ
プログラムは、定期的に任意のサウンドは、それが再要求し再生されますオープンが失敗し、 "Device or resource busy"エラーが返されることがあります。これは通常、多くのサウンドファイルがある場合に発生します。ただし、クローズコールは常に成功します。私は、クローズが成功した場合、PCMが他の誰かがすぐに利用できるようになると考えています。私は、音を使ってシステム上に他に何もないことを付け加えるべきです。
終了後にALSAがまだ一部のリソースをクリーンアップする必要がありますか? PCMインターフェイスは頻繁に開閉するように設計されていませんか?インターネット上のほとんどの例は、起動時にPCMストリームを開き、シャットダウン時にPCMストリームを閉じます。
DAPMコアでSND_SOC_DAPM_PRE_PMDウィジェットイベントを生成できる唯一の方法は、pcmを閉じることです(私の動機は節電です)。 alsa-libでこれを引き起こす別の方法がありますか? – waffleman
@Maister:ストリームでのサンプリングレートの変化をどうやって管理できますか?例えば、私は44.1KHzと48KHzのサンプリングレートのPCMの2つのストリームを持っており、私はこのオーディオを出力したい(つまり、ある時間44.1とある時間48)。私は、この切り替えの間にAlsaを閉じて開いておく必要があると思います。それには他の方法がありますか? – jjb