2

ユーザースペースから仮想デバイスを開発しています

(umview http://wiki.virtualsquare.org/wiki/index.php/UMviewを使用)したがって、デバイスをシステムのサウンドカードリストに登録する必要があります

(カーネルモジュールでalsaを使用したことがないので、snd_card_register()関数を呼び出す必要があると思います)

しかし、ユーザースペースからそれを行う方法を見つけることができません...

多分私はそれをするためにシステムコールを書くことができますか?

4

2 に答える 2

5

特定のファイルのオーバーライドを気にするのをやめ(つまり、umviewの使用をやめ、必要ありません)、「ファイル」プラグインを使用して、 ALSA構成でデバイスを作成し、名前付きパイプを介してデータを仮想デバイスにパイプ/var/run/virtualsound/outputする必要があると思います。またはそのような場所。

umviewアプローチとは異なり、これは特別な方法で実行しなくてもすべてのアプリケーションで機能します。

于 2013-03-01T06:52:59.623 に答える
0

私は数回前にこの問題を解決しました、

Alsa user-space libは、0から32までのすべての/ dev / snd / controlC#を開いて起動するだけです

ioctl(SNDRV_CTL_IOCTL_CARD_INFO, ...);     

インストールされたサウンドカードでリストを作成するために

UmViewモジュールを/dev/ snd / control#にマウントし、ioctlをハイジャックしてそれに応答すると、モジュールはALSAによってサウンドカードとして識別されます。

その手法で仮想サウンドデバイスを作成しました。https://github.com/berdav/umdevaudioで見つけることができ ます

これは、単純なユーザースペースドライバーを構築するための簡単な方法です。

于 2014-01-08T13:12:53.713 に答える