Làm thế nào đầu vào âm thanh của tôi luôn luôn là micro webcam?


14

Mỗi lần tôi muốn sử dụng Skype, tôi phải sử dụng tùy chọn âm thanh. Và ở đó, chuyển âm thanh thành " webcam " và bỏ chọn nút " tắt tiếng ". Nó khá là khó chịu. Có cách nào để luôn giữ cấu hình giống nhau không?


1
Tôi có vấn đề này cũng như với quickacam logitech. Sau mỗi lần khởi động lại, tôi phải thực hiện các tùy chọn và đặt lại làm đầu vào mặc định để nó hoạt động. Tôi nghĩ nó có liên quan đến thực tế là các thiết bị usb được tải sau khi tùy chọn âm thanh được đặt để xung hoặc alsa không "nhìn thấy" mic micrô. Thật không may vì "vấn đề" không thực sự là vấn đề chỉ là sự bất tiện, nó không quan trọng đến mức tôi muốn xắn tay áo lên và bắt đầu đào và chỉnh sửa thông qua các tập tin cấu hình.

Câu trả lời:


14

Thay đổi cài đặt mặc định cho PulseAudio

Khi chạy pulseaudio, tất cả các cài đặt có thể được xác định bằng cách đặt các tệp cấu hình tùy chỉnh vào .pulsethư mục ẩn trong HOME của bạn. Nếu các tệp này chưa tồn tại ở đó, bạn có thể sử dụng các tệp tiêu chuẩn từ /etc/pulse/dưới dạng mẫu. Hầu hết các mục có giải thích dài dòng trong các tập tin này.

  • ~/.pulse/default.pa để tải các mô-đun và xác định mặc định
  • ~/.pulse/client.conf để cấu hình máy khách cho máy chủ âm thanh
  • ~/.pulse/daemon.conf để xác định tỷ lệ mẫu và bộ đệm

Để biến webcam của bạn thành nguồn mặc định, chúng tôi cần biết tên và số của nguồn này bằng cách xem qua danh sách được tạo bởi lệnh sau trong một thiết bị đầu cuối:

pacmd list-sources

Sau đó chúng tôi chỉnh sửa dòng sau ~/.pulse/default.pa:

set-default-source [name]

và thay thế [name]bằng tên hoặc số nguồn cho nguồn mong muốn. Sau đó, chúng tôi cần đảm bảo rằng nguồn không bị tắt tiếng bằng cách thêm dòng này:

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

Đặt tên hoặc chỉ mục của nguồn của bạn. Bạn có thể thêm một loạt các cài đặt khác được tham chiếu trong PulseAudio Wiki (hiện có trên trang man man pulse-cli-syntax:).

Trước tiên, nên kiểm tra tất cả các lệnh thông qua giao diện dòng lệnh trước khi thay đổi các tệp cấu hình. Điều này có thể được mở pacmd trong một thiết bị đầu cuối


Không có default.pa trong thư mục .pulse của tôi. Tôi có nên tạo một tệp mới với một dòng: set-default-source x không?
Làm

3
@ToDo cài đặt mặc định là trong /etc/pulse/default.pa. Sử dụng tập tin này hoặc sao chép nó ~/.pulsetrước khi chỉnh sửa.
Takkat

Để hoàn thiện: người ta phải viết như một tên thiết bị đầu vào, thứ được viết bên trong các dấu ngoặc nhọn của đầu ra pacmd list-sources. Tức là với thiết bị của tôi set-default-source alsa_input.usb-0d8c_USB_PnP_Sound_Device-00-Device.analog-mon.
Hi-Angel

@ Hi-Angel: cảm ơn bạn vì điều đó - câu trả lời đến từ một phiên bản cũ hơn của pulseaudio. Bây giờ chúng ta có thể sử dụng tên thích hợp của bồn rửa.
Takkat

6

Tôi đồng ý rằng vấn đề là Pulseaudio không đặt thiết bị USB làm mặc định vì nó không xuất hiện khi xung bắt đầu.

Giải pháp của tôi cho vấn đề này là kết nối với hệ thống thông báo khi thiết bị USB được kết nối ... UDEV!

BTW, các hướng dẫn này hơi thú vị và tôi giả sử rằng bạn cảm thấy thoải mái khi thực hiện công cụ tại dòng lệnh và trở thành người dùng root để cập nhật các tệp udev và làm cho các tập lệnh có thể thực thi được.

Đầu tiên, tìm hiểu công cụ

Id USB

Bước đầu tiên là cắm webcam của bạn và tìm nhà cung cấp ma thuật và số sản phẩm bằng cách nhập

lsusb

Tôi đang sử dụng Microsoft Lifecam và nó hiển thị dưới dạng

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

phần quan trọng là 045e: 072d

Thiết bị Pulseaudio

Tiếp theo, trong khi webcam được kết nối, hãy tìm hiểu tên thiết bị pulseaudio. Kiểu

pacmd list-sources

Một lần nữa, tôi đang tìm kiếm dòng bắt đầu name:sau đó có một cái gì đó về Microsoft Lifecam ... đây là

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

vì vậy tên thiết bị pulseaudio của tôi sẽ là alsa_input.usb-Microsoft_Microsoft___LifeCam_VX-5500-02-VX5500.analog-mono

Quy tắc UDEV

Sau đó, tôi đã thực hiện quy tắc udev mới được kích hoạt khi thiết bị USB có nhà cung cấp = 045e và sản phẩm = 072d được chèn. Để tạo quy tắc, hãy tạo một tệp mới gọi là /etc/udev/rules.d/SOMETHING.rules (Tôi đã gọi tệp của mình /etc/udev/rules.d/95-webcam-mic.rules).

Đặt dòng này vào tập tin

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

Hãy nhớ thay thế ATTR {idVendor}ATTR {id sản phẩm} bằng các giá trị cho webcam của bạn.

Những gì quy tắc này làm là chạy một kịch bản để đặt thiết bị usb cho đầu vào, đó là RUN+="/usr/local/bin/webcam-mic"một phần.

Cuối cùng, đặt webcam cho đầu vào

Tổng quan nhanh thời gian. Mỗi lần tôi kết nối webcam tôi muốn chạy lệnh

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

Nhưng lệnh cần chạy như tôi (người dùng chạy máy tính để bàn), nhưng udev chạy với tư cách người dùng root - vì vậy khi udev chạy lệnh của tôi, tôi cần nó để thay đổi thành người dùng của mình, sau đó chạy lệnh.

Vì vậy, chúng tôi có 2 lựa chọn.

  1. Nhanh và bẩn . Làm cho quy tắc udev chạy, su james -c pacmd set-default-source... điều này thật sai. Tôi thậm chí không thể hoàn thành việc gõ lệnh. Nếu bạn thay đổi webcam thì sao? Điều gì nếu bạn cài đặt này cho người dùng khác?

  2. Hơi sạch hơn . Chạy tập lệnh đọc tệp mặc định có tên thiết bị pulseaudio và tên người dùng của bạn trong đó. Nếu bạn muốn các tệp chúng có trên GitHub. Đầu tiên là kịch bản /usr/local/bin/webcam-mic. Tệp mặc định /etc/default/webcam-micchỉ cần xác định 2 biến shell, theo nhận xét trong ý chính. Đặt kịch bản vào /usr/local/bin/và làm cho nó thực thi được. Sau đó đặt tệp mặc định vào /etc/defaults/và chỉnh sửa tệp để sử dụng tên người dùng và thiết bị pulseaudio từ trước đó.

Chúc may mắn!


Bất kỳ cơ hội nào bạn có thể tải lên các kịch bản đó một lần nữa; họ dường như đã biến mất khỏi pastebin?
ej159

Tôi đã đặt kịch bản vào một ý chính trên GitHub và cập nhật câu trả lời.
James Mitchell

2

Giải pháp của Takkat không hiệu quả với tôi, đây là giải pháp của tôi cho bất cứ ai vẫn gặp vấn đề với điều này.

Có hai vấn đề đối với tôi với giải pháp của Takkat. Đầu tiên, tôi nhận ra rằng cần phải có độ trễ sau khi khởi động trước khi chuyển đổi sang micrô có thể diễn ra (tôi sử dụng lệnh 'ngủ' trong giải pháp của mình bên dưới). Ngoài ra, lệnh 'set-default-source' đang hoạt động để bật micrô USB, nhưng bằng cách nào đó, Skype không nhận ra điều này và tiếp tục sử dụng micrô bên trong.

Để làm việc này, đầu tiên nó rất hữu ích để cài đặt pavucontrol. Trong pavucontrol, mở tab 'Cấu hình' và quan sát những gì xảy ra với các lệnh bên dưới để kiểm tra mọi thứ đang hoạt động như dự định.

Sau đó, từ một thiết bị đầu cuối nhập:

pacmd

Từ đó, nhập:

list-cards

Trong đầu ra, tìm số chỉ mục của âm thanh USB bạn muốn (trong trường hợp của tôi, đây là '1'). Sau đó, hãy xem các dòng được liệt kê trong 'hồ sơ' cho cả thẻ mặc định và thẻ USB. Chúng phải giống như những cái được liệt kê trong pavucontrol và có thể là một cái gì đó như 'ouput: input + output', 'off' hoặc 'input: analog-mono', v.v. Vẫn trong dòng lệnh pacmd, lệnh set-card-profile <index number> <profile name>sẽ thay đổi các thiết lập trong pavucontrol. Những gì chúng tôi muốn làm ở đây là chuyển âm thanh bên trong từ song công sang đầu ra và USB sang đầu vào.

Sau khi tìm thấy các cấu hình phù hợp, chúng tôi muốn tạo một lệnh khởi động để thay đổi một vài cài đặt ngay sau khi khởi động. Để tạo lệnh khởi động, hãy mở dấu gạch ngang và tìm kiếm 'ứng dụng khởi động', sau đó nhấp vào 'thêm', sau đó nhập tên bạn chọn và lệnh thích hợp bên dưới.

Sau khi dùng thử và lỗi, lệnh khởi động của tôi đã kết thúc như thế này:

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"

Giải thích: Tôi thấy rằng lệnh 'ngủ' là cần thiết, điều này có nghĩa là lệnh được thực thi sau khi tạm dừng, tôi đặt thành 30 giây (tôi nghĩ rằng điều này có thể ít hơn, chơi xung quanh với điều này). Lệnh tiếp theo (sau '&&') là lấy cấu hình thẻ mặc định (bên trong) để chuyển từ đầu vào + đầu ra (song công, là mặc định) thành đầu ra. Lệnh tiếp theo dành cho thẻ âm thanh USB (trong trường hợp của tôi, số là '1') để tắt. Lệnh cuối cùng là để cùng loại thẻ này bật lại trong chế độ 'đầu vào: analog-mono'

Bạn có thể phải chơi xung quanh với các cài đặt này, để tìm một cài đặt hoạt động.

Bây giờ khi tôi khởi động, micrô USB của tôi đã sẵn sàng để sử dụng sau 30 giây và Skype sử dụng đúng micrô.


0

Hãy thử điều này, nhấp vào biểu tượng loa trên bảng điều khiển trên cùng của bạn, tùy chọn nhấp chuột. ở đó bạn có thể chọn một tùy chọn đầu vào mặc định cho micrô của mình và có thể thay đổi một số cấu hình phần cứng để làm cho nó hoạt động tốt.


1
Cảm ơn sự giúp đỡ của bạn, nhưng đó là những gì tôi đang làm ngay bây giờ. Tuy nhiên, tôi không thấy bất kỳ cách nào để biến điều này thành cài đặt mặc định. Thỉnh thoảng, tôi sẽ phải làm lại vì cài đặt đã thay đổi.
Gizmoatwork
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.