USB Micrô qua chuyển đổi USB không hoạt động với TeamSpeak


1

Tôi chạy Micrô USB qua bộ chuyển đổi USB (cùng với Chuột và Bàn phím) trên nhiều Máy tính.

Khi tôi chuyển trở lại từ Máy tính khác, Micrô của tôi được Linux kích hoạt lại, nhưng TeamSpeak không thể kích hoạt lại hoặc vẫn nghĩ rằng nó bị hỏng / không khả dụng. Tôi phải thay đổi cấu hình "Thiết bị chụp" trong Teamspeak từ "Mặc định" sang Micrô USB của tôi hoặc theo cách khác để làm cho thiết bị hoạt động trở lại.

Trong bản cài đặt Ubuntu cũ hơn, bằng cách nào đó tôi đã giải quyết vấn đề này với sự trợ giúp của Google để Micrô USB luôn xuất hiện hoạt động (mặc dù chưa được cắm), nhưng tôi không thể tìm thấy bản sửa lỗi này một lần nữa.


Bạn có nhớ bất kỳ chi tiết làm thế nào bạn giải quyết nó? Với một bồn rửa Pulseaudio null, và loopback? Với một số plugin ALSA, chỉnh sửa .asoundrc? Có gì không
dirkt

@dirkt không, tiếc là không. Tôi vừa thử null null với ý tưởng mô-đun loopback và nó chỉ hoạt động một lần, nếu tôi ngắt kết nối micrô nhiều lần, nó không kết nối lại mic với bồn rửa null.
TimeWaster

Câu trả lời:


0

Vì vậy, sau khi đổ mồ hôi máu và nước mắt, đọc hàng tấn tài liệu và thử mọi thứ trong nhiều ngày tôi đã có một giải pháp. không phải là một tốt, nhưng tôi có một.

đầu tiên thêm vào cuối cấu hình pulseaudio của bạn (trong trường hợp của tôi sudo nano /etc/pulse/default.pa) cấu hình sau:

# create virtual sink named Mic and loopback USB Microphone to virtual sink
load-module module-null-sink sink_name=Mic
load-module module-loopback source=alsa_input.usb-Thomann_SC450USB-00.iec958-stereo sink=Mic source_dont_move=true sink_dont_move=true
set-default-source Mic.monitor

điều này tạo ra một "null-chìm" không biến mất khi một số thiết bị bị tách ra vì nó không thuộc về bất kỳ thiết bị nào, cũng có một nguồn màn hình tương ứng mà TS3 có thể sử dụng làm nguồn cố định. sau đó một loopback được tạo từ micro đến phần chìm null. Bây giờ khởi động lại pulseaudio:

pulseaudio -k

bây giờ bạn cần đảm bảo rằng TS3 sử dụng màn hình Mic làm nguồn vĩnh viễn bằng cách mở pavucontrolvà đảm bảo rằng trong tab "Ghi âm" "TeamSpeak3" được liên kết với "Màn hình đầu ra không" trong danh sách thả xuống.

thông thường, điều này là đủ, nhưng pulseaudio không gắn lại loopback sau khi micrô được kết nối lại. để điều đó xảy ra, chúng ta cần udev.

đầu tiên tạo một tập lệnh có thể được gọi bởi udev:

sudo nano /usr/local/bin/udev_sound

và thêm đoạn script sau:

#!/bin/bash

# check if microphone is mounted already
while ! $(pactl list sources|grep -q 'alsa_input.usb-Thomann_SC450USB-00.iec958-stereo')
do
  let "n += 1"
  sleep 1
  if [ "$n" -eq 10 ]
    then break
  fi
  echo "running"
done

# loopback microphone to null sink
export PULSE_RUNTIME_PATH="/run/user/$(id -u)/pulse/"
pactl load-module module-loopback source=alsa_input.usb-Thomann_SC450USB-00.iec958-stereo sink=Mic source_dont_move=true sink_dont_move=true

Bây giờ làm cho tập lệnh thực thi:

sudo chmod +x /usr/local/bin/udev_sound

việc này sẽ kiểm tra trong khoảng thời gian 10 giây nếu micrô được gắn vào và nếu có, hãy tạo lại vòng lặp pulseaudio đã được gỡ bỏ khi micrô được tháo ra.

bây giờ hãy tạo quy tắc udev bắt đầu tập lệnh khi thiết bị được gắn lại:

sudo nano /lib/udev/rules.d/91-someNameYouWillRecogniseAsYours.rules

với nội dung sau:

ACTION=="add", SUBSYSTEM=="sound", ATTR{id}=="SC450USB", RUN+="/bin/su YOURuSERnAME -c 'screen -d -m /usr/local/bin/udev_sound'"

Bây giờ khởi động lại udev:

sudo /etc/init.d/udev restart

kiểm tra này nếu một thiết bị có id nhất định được thêm vào (đính kèm) và chạy tập lệnh chúng tôi vừa tạo dưới tên người dùng của bạn (đừng quên thay đổi nó). điều này rất quan trọng vì trên hầu hết hệ thống pulseaudio được chạy trong userland. screen -d -mrất quan trọng để tập lệnh được chạy không chặn, nếu không, micrô sẽ không được gắn cho đến khi tập lệnh kết thúc chạy.

Lệnh dành riêng cho thiết bị của bạn rất có thể sẽ trông khác nhau, "ATTR" và các số nhận dạng khác sẽ sử dụng tùy thuộc vào thiết bị của bạn, làm thế nào để tìm ra điều đó được mô tả hàng triệu lần trực tuyến.

cái này nên là nó bây giờ, mỗi khi micrô được gắn lại, tập lệnh sẽ tạo ra loopback và TS3 nên luôn luôn lắng nghe màn hình chìm null nghĩ rằng đó là micrô thực.

trong tất cả các bước này thay thế "alsa_input.usb-Thomann_SC450USB-00.iec958-stereo" bằng bất cứ thứ gì thiết bị của bạn được đặt tên như thế nào!

tổng thể tôi có thể nói tôi ghét udev. nó có một triệu thứ đặc biệt, nó xử lý khác với hệ thống linux bình thường và gần như không thể gỡ lỗi. tôi không bao giờ muốn nhìn thấy nó một lần nữa.

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.