ฉันจะใช้สตรีมเสียงเสมือน PulseAudio เพื่อเล่นเพลงผ่าน Skype ได้อย่างไร


20

ฉันพยายามฟังเอาต์พุตเสียงของกระบวนการเฉพาะ (A) และกระบวนการอื่น (B) ในขณะที่เปลี่ยนเส้นทางเอาต์พุตเสียงของ A ไปยังอินพุตเสียงของ B นี่จะเทียบเท่ากับการเล่นเพลงใน Skype ในขณะที่ฟังเพลงและเพื่อนของคุณและให้เพื่อนของคุณได้ยินคุณ

ฉันได้ลองทำตามบทแนะนำใน openSUSE (Google "กำลังมองหา (อาจ)) สำหรับตัวผสมสัญญาณเสียงเพื่อใช้กับ Pulse Audio") เกี่ยวกับเรื่องนี้และดูวิดีโอหลายครั้ง ก่อนหน้านี้ฉันพยายาม JACK เท่านั้นเพื่อค้นหาว่าไม่รู้จักหูฟัง Logitech G35 ของฉัน

ฉันสามารถเล่นดนตรีมีทั้งเพื่อนของฉันและฉันได้ยินมัน แต่ฉันไม่สามารถส่งเสียงในเวลาเดียวกัน ไม่ว่าจะเป็นเสียงของฉันหรือเพลงที่เพื่อนของฉันได้ยิน ฉันจะส่งเสียงได้อย่างไร

ภาพบางส่วนของการตั้งค่าของฉัน (ใช้หนึ่ง Null Output):

แท็บการเล่น: ป้อนคำอธิบายรูปภาพที่นี่

แท็บการบันทึก: ป้อนคำอธิบายรูปภาพที่นี่

คำตอบ:


23

หลังจากผ่านไปหลายชั่วโมงในที่สุดฉันก็บรรลุมัน!

ฉันสร้าง Null Outputs สองรายการและสร้างลูปแบ็คสองรายการสำหรับครั้งแรกและหนึ่งลูปแบ็คสำหรับครั้งที่สอง

pactl load-module module-null-sink sink_name=Virtual1
pactl load-module module-null-sink sink_name=Virtual2
pactl load-module module-loopback sink=Virtual1
pactl load-module module-loopback sink=Virtual1
pactl load-module module-loopback sink=Virtual2

ต่อไปฉันเปิด PulseAudio Volume Control (pavucontrol)

นี่คือการตั้งค่าของฉัน ฉันพิมพ์พวกเขาตามลำดับที่ปรากฏ ตัวเลขเริ่มจากขึ้นลง

  • แท็บการบันทึก:

    • การใช้งาน:
      • แอปพลิเคชันทั้งหมดควรป้อนจากชุดหูฟัง / ไมโครโฟนของคุณ
      • ยกเว้นแอปพลิเคชันที่คุณต้องการส่งเสียงควรตั้งค่าเป็นอย่างใดอย่างหนึ่งต่อไปนี้ หากคุณต้องการส่งเสียงเท่านั้น: การตรวจสอบสัญญาณ Null 1 มันจะเป็น "สัญญาณ Null แรก" ในรายการ หากคุณต้องการส่งทั้งเสียงและเสียงของคุณ: Monitor ของ Null Output 2 มันจะเป็น "Null Output" ตัวที่สองในรายการ
    • ลำธารเสมือนจริง:
      • ย้อนกลับไปที่เอาต์พุต Null (1): ชุดหูฟัง / ไมโครโฟนของคุณ
      • ย้อนกลับไปที่ชุดหูฟัง / ไมโครโฟนของคุณ: Null Output 1 มันจะเป็น "Null Output" แรกในรายการ
      • ย้อนกลับไปที่ Null Output: Null Output 1 มันจะเป็น "Null Output" แรกในรายการ
  • แท็บการเล่น:

    • การใช้งาน:
      • แอปพลิเคชันทั้งหมดควรส่งออกไปยังชุดหูฟัง / ลำโพงของคุณ
      • ยกเว้นแอปพลิเคชันที่คุณต้องการบันทึก / ส่งผ่าน Skype / สตรีมควรตั้งค่าเป็น Null Output 1 มันจะเป็น "Null Output" ครั้งแรกในรายการ
    • สตรีมเสมือน:
      • ย้อนกลับของชุดหูฟังของคุณ: Null Output 2 มันจะเป็น "Null Output" อันที่สองในรายการ
      • การวนลูปของการตรวจสอบเอาต์พุต Null (1): ชุดหูฟังของคุณ
      • ลูปแบ็คของการมอนิเตอร์เอาต์พุต Null (2): เอาต์พุต Null 2 ​​มันจะเป็น "Null Output" อันที่สองในรายการ

11

เพื่อไม่ให้สับสนกับ "null output" เพียงระบุชื่อดังนี้:

pactl load-module module-null-sink sink_name=Virtual1 sink_properties=device.description="NAME HERE (mic+music)"
pactl load-module module-null-sink sink_name=Virtual2 sink_properties=device.description="NAME HERE (only music)"
pactl load-module module-loopback sink=Virtual1
pactl load-module module-loopback sink=Virtual1
pactl load-module module-loopback sink=Virtual2

1

เป็นไปได้ที่จะไปได้ไกลกว่าการปรับปรุงที่เสนอโดย @MikWind และกำหนดค่าแหล่งที่มาของอุปกรณ์ลูปแบ็คในเวลาที่สร้าง

ในที่สุดฉันก็ได้สคริปต์ทุบตีเพื่อตั้งค่าทุกอย่างที่คงที่:

#!/bin/bash

MICROPHONE="alsa_input.pci-0000_00_1b.0.analog-stereo"
SPEAKERS="alsa_output.pci-0000_00_1b.0.analog-stereo"

# Create the null sinks
# virtual1 gets your audio source (mplayer ...) only
# virtual2 gets virtual1 + micro
pactl load-module module-null-sink sink_name=virtual1 sink_properties=device.description="virtual1"
pactl load-module module-null-sink sink_name=virtual2 sink_properties=device.description="virtual2"

# Now create the loopback devices, all arguments are optional and can be configured with pavucontrol
pactl load-module module-loopback source=virtual1.monitor sink=$SPEAKERS
pactl load-module module-loopback source=virtual1.monitor sink=virtual2
pactl load-module module-loopback source=$MICROPHONE sink=virtual2

มีตัวเองพยายามหลายชั่วโมงก่อนที่การทำความเข้าใจมากพอที่จะทำให้มันทำงานผมรวบรวมผลงานวิจัยของฉัน (สคริปต์การเชื่อมโยงเอกสารคำอธิบาย) ในrepo คอมไพล์

ฉันไม่แน่ใจว่ามันชัดเจนเพียงพอที่จะเป็นประโยชน์กับคนอื่นที่ไม่ใช่ฉัน แต่ฉันหวังว่าฉันจะพบเอกสารประเภทนี้เมื่อฉันทำวิจัยของตัวเองดังนั้นฉันขอแนะนำให้ทุกคนที่พยายามทำสิ่งเดียวกันกับ มีลักษณะ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.