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?
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?
Câu trả lời:
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 .pulse
thư 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
/etc/pulse/default.pa
. Sử dụng tập tin này hoặc sao chép nó ~/.pulse
trước khi chỉnh sửa.
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
.
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 có 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.
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
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
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} và 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.
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.
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?
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-mic
chỉ 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!
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ô.
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.