web-dev-qa-db-ja.com

オーディオ入力を常にウェブカメラのマイクにするにはどうすればよいですか?

Skypeを使用するたびに、サウンド設定を行う必要があります。そして、オーディオ入力を「webcam」に切り替え、「mute」ボタンのチェックを外します。それは非常に迷惑です。常に同じ構成を維持する方法はありますか?

13
Gizmoatwork

PulseAudioのデフォルト設定を変更する

Pulseaudioを実行するとき、すべての設定は、カスタム設定ファイルをHOMEの隠し.Pulseディレクトリに置くことで定義できます。これらのファイルがまだ存在しない場合は、/etc/Pulse/の標準ファイルをテンプレートとして使用できます。ほとんどのエントリには、これらのファイルに詳細な説明があります。

  • ~/.Pulse/default.paはモジュールをロードし、デフォルトを定義します
  • ~/.Pulse/client.confは、サウンドサーバーのクライアントを構成します
  • ~/.Pulse/daemon.confはサンプルレートとバッファを定義します

Webカメラをデフォルトのソースにするには、ターミナルで次のコマンドによって生成されたリストを調べて、このソースの名前と番号を知る必要があります。

pacmd list-sources

次に、~/.Pulse/default.paの次の行を編集します。

set-default-source [name]

[name]を、目的のソースの名前またはソース番号に置き換えます。次に、次の行を追加して、ソースがミュート解除されていることを確認する必要があります。

set-source-mute [name]|[#n]> 0

ソースの名前またはインデックスを指定します。 PulseAudio Wiki (現在、manページ:man Pulse-cli-syntax)で参照されている他のさまざまな設定を追加できます。

構成ファイルを変更する前に、最初にコマンドラインインターフェイスを介してすべてのコマンドをテストすることをお勧めします。これは、pacmdで端末で開くことができます

13
Takkat

PulseaudioがUSBデバイスをデフォルトとして設定しないのは、Pulseの起動時にUSBデバイスが存在しないためだということに同意します。

これに対する私の解決策は、USBデバイスが接続されたときにdoes通知するシステムにフックすることです... UDEV!

ところで、これらの指示は少しファンキーで、コマンドラインで何かをしたり、udevファイルを更新したり、スクリプトを実行可能にするrootユーザーになったりすることに慣れていると思います。

まず、ものを見つける

USB ID

最初のステップは、ウェブカメラを接続し、次のように入力して魔法のベンダーと製品番号を見つけることです。

lsusb

Microsoft Lifecamを使用していますが、

Bus 001 Device 013: ID 045e:072d Microsoft Corp.

重要な部分は045e:072d

Pulseaudioデバイス

次に、Webカメラが接続されている間に、pulseaudioデバイス名を見つけます。タイプ

pacmd list-sources

繰り返しますが、name:で始まり、Microsoft Lifecamについて何かがある行を探しています...ここにあります

name: <alsa_input.usb-Microsoft_Microsoft___LifeCam_VX-5500-02-VX5500.analog-mono>

私のpulseaudioデバイス名はalsa_input.usb-Microsoft_Microsoft___LifeCam_VX-5500-02-VX5500.analog-monoになります

UDEVルール

次に、vendor = 045eおよびproduct = 072dのUSBデバイスが挿入されたときに起動される新しいudevルールを作成しました。ルールを作成するには、/etc/udev/rules.d/SOMETHING.rules(ファイル/etc/udev/rules.d/95-webcam-mic.rulesと呼びます)という新しいファイルを作成します。

この行をファイルに入れます

SUBSYSTEMS=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="072d", ACTION=="add", GROUP="audio", RUN+="/usr/local/bin/webcam-mic"

ATTR {idVendor}ATTR {idProduct}を忘れずに置き換えてくださいウェブカメラの値。

このルールが行うことは、入力用にusbデバイスを設定するスクリプト、つまりRUN+="/usr/local/bin/webcam-mic"部分を実行することです。

最後に、入力用のWebカメラを設定します

概要時間。ウェブカメラを接続するたびにコマンドを実行したい

pacmd set-default-source alsa_input.usb-Microsoft_Microsoft___LifeCam_VX-5500-02-VX5500.analog-mono

ただし、コマンドはme(デスクトップを実行しているユーザー)として実行する必要がありますが、udevはrootユーザーとして実行されるため、udevがコマンドを実行するときに必要ですユーザーに変更してコマンドを実行します。

したがって、2つのオプションがあります。

  1. 手早く汚れています。 udevルールにsu james -c pacmd set-default-source...を実行させます。これは非常に間違っているので、コマンドの入力を終了することさえできません。ウェブカメラを変更したらどうなりますか?これを別のユーザーにインストールするとどうなりますか?

  2. わずかにクリーナー。 pulseaudioデバイス名とユーザー名が含まれるデフォルトファイルを読み取るスクリプトを実行します。ファイルが必要な場合は、GitHubにあります。まず、スクリプト /usr/local/bin/webcam-mic 。デフォルトファイル/etc/default/webcam-micは、Gistのコメントに従って、2つのシェル変数を定義する必要があります。スクリプトを/usr/local/bin/に入れて実行可能にします。次に、デフォルトファイルを/etc/defaults/に配置し、以前のユーザー名とpulseaudioデバイスを使用するように編集します。

幸運を!

6
James Mitchell

これを試して、トップパネルのスピーカーアイコンをクリックし、クリック設定をクリックします。そこで、マイクのデフォルトの入力オプションを選択し、おそらくいくつかのハードウェア設定を変更して正常に動作させることができます。

0
helios66