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


14

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


1
ロジクールquickacamでもこの問題があります。再起動するたびに、設定を確認して、デフォルトの入力としてリセットする必要があります。サウンド設定が設定された後にusbデバイスがロードされるため、パルスまたはalsaがusbマイクを「認識」しないという事実と関係があると思います。残念ながら、「問題」は実際には単に不便な問題ではないため、シャツの袖をまくり、設定ファイルを掘り下げて編集を開始することはそれほど重要ではありません。

回答:


14

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

pulseaudioを実行するとき、すべての設定は.pulse、HOMEの隠しディレクトリにカスタム構成ファイルを置くことで定義できます。これらのファイルがまだ存在しない場合は、標準ファイルを/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


.pulseフォルダーにdefault.paはありません。1行で新しいファイルを作成する必要があります:set-default-source x?
行うこと

3
@ToDoデフォルト設定はにあり/etc/pulse/default.paます。このファイルを使用するか、~/.pulse編集する前にコピーしてください。
Takkat

完全を期すために、の出力の山カッコ内に記述されているものを入力デバイス名として記述する必要がありpacmd list-sourcesます。つまり、私のデバイスにとってはそうでしたset-default-source alsa_input.usb-0d8c_USB_PnP_Sound_Device-00-Device.analog-mon
ハイエンジェル

@ Hi-Angel:それに感謝します-答えはpulseaudioのずっと古いバージョンから来ました。シンクの適切な名前を使用できるようになりました。
Takkat

6

私は、PulseaudioがUSBデバイスをデフォルトとして設定しないという問題に同意します。これは、パルスの開始時にはUSBデバイスが存在しないためです。

スヨンは、これに対する私の解決策は、システムにフックすることです、USBデバイスが接続されたときに通知を... 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(私はmy fileと呼びます/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}をWebカメラの値に置き換えてください。

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

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

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

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

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

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

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

  2. 少しきれい。pulseaudioデバイス名とユーザー名が含まれるデフォルトファイルを読み取るスクリプトを実行します。ファイルが必要な場合は、GitHubにあります。最初にスクリプト /usr/local/bin/webcam-mic。デフォルトファイル/etc/default/webcam-micでは、要点のコメントに従って、2つのシェル変数を定義するだけで済みます。スクリプトを入れ/usr/local/bin/て実行可能にします。次に、デフォルトファイルを保存し/etc/defaults/て編集し、以前のユーザー名とpulseaudioデバイスを使用します。

幸運を!


これらのスクリプトを再びアップロードできる可能性があります。それらはペーストビンから消えたように見えますか?
ej159 14年

スクリプトをGitHubの要点にまとめ、答えを更新しました。
ジェームズミッチェル14年

2

Takkatによる解決策は私にとってはうまくいきませんでした。ここに問題がまだある人のための私の解決策があります。

Takkatのソリューションには2つの問題がありました。まず、起動後、マイクへの切り替えが行われるまでに遅延が必要であることに気付きました(以下のソリューションでは「sleep」コマンドを使用しています)。また、コマンド「set-default-source」はUSBマイクをオンにするために機能していましたが、どういうわけかSkypeはこれを認識せず、内部マイクを使用し続けました。

これが機能するためには、まずpavucontrolをインストールすると便利です。pavucontrolで[構成]タブを開き、以下のコマンドで何が起こるかを観察して、意図したとおりに機能していることを確認します。

次に、ターミナルから次を入力します。

pacmd

そこから、次を入力します。

list-cards

出力で、必要なUSBオーディオのインデックス番号を見つけます(私の場合、これは「1」でした)。次に、デフォルトカードとUSBカードの両方の「プロファイル」の下にリストされている行を見てください。これらは、pavucontrolにリストされているものと同じである必要があり、「ouput:input + output」、「off」、または「input:analog-mono」などのようになります。なお、pacmdコマンドラインでは、コマンドset-card-profile <index number> <profile name>を変更する必要がありますpavucontrolの設定。ここでやりたいのは、内部オーディオをデュプレックスから出力のみに、USBを入力に切り替えることです。

適切なプロファイルが見つかったら、起動直後にいくつかの設定を変更する起動コマンドを作成します。起動コマンドを作成するには、ダッシュを開いて「起動アプリケーション」を検索し、「追加」をクリックして、選択した名前と適切なコマンドを以下に入力します。

試行錯誤の後、私の起動コマンドは次のようになりました。

bash -c "sleep 30 && pacmd set-card-profile 0 output:analog-stereo && pacmd set-card-profile 1 off && pacmd set-card-profile 1 input:analog-mono"

説明:コマンド 'sleep'が必要であることがわかりました。これは、コマンドが一時停止後に実行され、30秒に設定されていることを意味します(これよりも少なくなると思います)。次のコマンド(「&&」の後)は、デフォルト(内部)カードプロファイルを取得して、入力+出力(デフォルトは二重)から出力のみに切り替えます。次のコマンドは、USBサウンドカード(私の場合、番号は「1」)をオフにするためのものです。最後のコマンドは、この同じカードが「input:analog-mono」モードで再びオンになることです。

動作するものを見つけるために、これらの設定をいじる必要があるかもしれません。

起動すると、30秒後にUSBマイクを使用できるようになり、Skypeは正しいマイクを使用します。


0

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


1
ご協力いただきありがとうございますが、それが今私がやっていることです。ただし、これをデフォルト設定にする方法はありません。時々、設定が変更されていたので、もう一度やらなければなりません。
ギズモワーク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.