6

最初にデバイスを開かずに ALSA デバイスの機能を確認するにはどうすればよいですか? 問題は、snd_pcm_open()テスト関数を使用するために関数にパラメーターを提供する必要があることですが、これはばかげています。最初に open 関数に伝える必要がある場合、これが再生デバイスか録音デバイスかを尋ねるのはなぜですか?

例として、すべての再生デバイスをリストしたいと思いますが、私が考えることができる唯一の方法は、見つけたすべてのデバイスを ( でsnd_device_name_hint()) 開き、再生モードでそれらを開こうとすることです。

問題は、考えられるすべてのバリエーション (サンプル レート、チャネルなど) を使用すると、パラメーターを見つけるために非常に多くの open() を実行する必要があることです。

4

4 に答える 4

7

snd_ctl_nextを使用してすべてのデバイスを反復処理し、次にsnd_ctl_openを使用してデバイスに関する情報を取得します。これはsnd_pcm_openと同じではありません。これは、別のプログラムでデバイスが開いている場合や設定が不適切な場合に失敗する可能性があります。

非常に高密度ですが、https://app.assembla.com/spaces/portaudio/git/source/master/src/hostapi/alsa/pa_linux_alsaで確認できるすべてのALSAデバイスを反復処理するオープンソースコードを次に示します。 c-開始するにはBuildDeviceListを検索します。

于 2009-12-31T01:16:12.360 に答える
0

これは、使用可能なすべてのオーディオ デバイス機能について知る必要がある、Linux/Unix プロジェクトに対する私の最初の要件でした。次に、これらのデバイスを使用してオーディオをキャプチャおよび再生する必要があります。私がやったことは非常に簡単です。Linux の alsa ユーティリティを介してデバイスを検索するために使用される linux/unix コマンドがあります。

それは:

aplay -l

今私がしたことは、alsa でこのように出力するプログラムを作成することです。

みんなの助けを借りて、(.so) ライブラリと、このライブラリを C++ で使用する方法を示すサンプル アプリケーションを作成しました。

私のライブラリの出力は次のようになります-

[root@~]# ./IdeaAudioEngineTest
HDA Intel plughw:0,0
HDA Intel plughw:0,2

このライブラリは、リアルタイムのオーディオ データをキャプチャして再生することもできます。

Duplex Alsa Audio を備えた IdeaAudio ライブラリのドキュメントで利用できます。

于 2013-08-01T10:43:36.610 に答える
-1

シェルコマンドを実行できる場合。それなら、aplay はあなたの友達です。

http://alsa.opensrc.org/Aplay

aplay -l

すべてのサウンドカードとデジタル オーディオ デバイスを一覧表示する

于 2009-12-08T12:48:19.743 に答える