Score:0

เบราว์เซอร์หัวขาด: เอาต์พุตเสียงไปยัง Pulseaudio

ธง cg

ฉันกำลังพยายามเรียกใช้เบราว์เซอร์แบบไม่มีส่วนหัวบนอินสแตนซ์ EC2/Ubuntu 20.04 แล้วส่งออกสตรีมเสียงที่เป็นผลลัพธ์ไปยังอ่างล้างข้อมูลเริ่มต้นของ Pulseaudio (ซึ่ง DarkIce/Icecast จะเลือกขึ้นมา) ฉันต้องการเรียกใช้หน้าเว็บเพียงหน้าเดียว (ของฉัน โฮสต์บนเซิร์ฟเวอร์อื่น ต้องใช้ jQuery & Howler.js) และเบราว์เซอร์/สตรีมที่ได้จะต้องเปิดตลอด 24 ชั่วโมงทุกวัน

ฉันได้รับไฟล์เสียงบนอินสแตนซ์เพื่อเล่น Icecast (โดยใช้ ogg123) ดังนั้น ogg123>Pulseaudio>Darkice>Icecast2 จึงใช้งานได้ ฉันได้สร้างอ่างเริ่มต้นตามด้านล่าง

pactl โหลดโมดูล module-null-sink sink_name=radio
pacmd update-sink-proplist radio device.description=radio
pacmd set-default-sink วิทยุ

และทำให้ Pulseaudio เป็นไดรเวอร์เริ่มต้นโดยสร้าง ~/.asoundrc เพื่อรวม

pcm.default ชีพจร
ctl.default ชีพจร

ฉันไม่แน่ใจว่าแนวทางที่ถูกต้องคืออะไรในการทำให้เบราว์เซอร์เล่นได้ดี ฉันได้ลอง (ทั้ง google-chome และ chromium) ชี้ตรงไปที่ทั้งไฟล์เสียงและหน้าที่มี js ที่เล่นเสียง (ด้วยความตั้งใจที่จะเรียกใช้งานในหน้าจอในที่สุด) ซึ่งทั้งสองอย่างนี้ดูเหมือนจะค้นหาเนื้อหา ไม่เข้าใกล้ เล่นเสียงใด ๆ ตัวอย่างเช่น,

 google-chrome-stable --headless --disable-gpu --autoplay-policy=no-user-gesture-required --user-data-dir=/home/ubuntu/chromeUser --disable-accelerated-video-decode - -disable-software-rasterizer --enable-logging=stderr --v=1 https://domain.name/stream.html 

สร้างสิ่งต่อไปนี้

[0608/102421.257217:INFO:cpu_info.cc(53)] จำนวนคอร์ที่ใช้ได้: 1
[0608/102421.258656:INFO:cpu_info.cc(53)] จำนวนแกนที่ใช้ได้: 1
[0608/102421.258861:VERBOSE1:zygote_main_linux.cc(217)] ZygoteMain: กำลังเริ่มต้นผู้รับมอบสิทธิ์ 0 fork
[0608/102421.259318:VERBOSE1:zygote_main_linux.cc(217)] ZygoteMain: กำลังเริ่มต้นผู้รับมอบสิทธิ์ 0 คน
[0608/102421.271947:VERBOSE1:webrtc_internals.cc(118)] ไม่สามารถรับไดเร็กทอรีการดาวน์โหลด
[0608/102421.280120:VERBOSE1:breakpad_linux.cc(2071)] การเปิดใช้การถ่ายโอนข้อมูลความผิดพลาดที่ไม่ใช่ของเบราว์เซอร์สำหรับ: กระบวนการ gpu
[0608/102421.283276:ERROR:gpu_init.cc(440)] ไม่รองรับ Passthrough GL ถูกปิดใช้งาน
[0608/102421.286107:VERBOSE1:breakpad_linux.cc(2071)] การเปิดใช้การถ่ายโอนข้อมูลที่ไม่ทำงานของเบราว์เซอร์สำหรับ: ตัวแสดง
[0608/102421.288099:VERBOSE1:sandbox_linux.cc(69)] เปิดใช้งานแซนด์บ็อกซ์ seccomp-bpf สำหรับประเภทกระบวนการ: กระบวนการ GPU
[0608/102421.293815:VERBOSE1:sandbox_linux.cc(69)] เปิดใช้งานแซนด์บ็อกซ์ seccomp-bpf สำหรับประเภทกระบวนการ: ตัวเรนเดอร์
[0608/102421.303930:VERBOSE1:device_data_manager_x11.cc(216)] X ส่วนขยายอินพุตไม่พร้อมใช้งาน
[0608/102421.356750:VERBOSE1:configured_proxy_ resolution_service.cc(852)] การสนับสนุน PAC ถูกปิดใช้งานเนื่องจากไม่มีการใช้งานระบบ
[0608/102421.357514:VERBOSE1:configured_proxy_ resolution_service.cc(852)] การสนับสนุน PAC ถูกปิดใช้งานเนื่องจากไม่มีการใช้งานระบบ
[0608/102421.359494:VERBOSE1:network_delegate.cc(32)] NetworkDelegate::NotifyBeforeURLRequest: https://domain.name/stream.html
[0608/102421.411474:VERBOSE1:document.cc(3974)] เอกสาร::DispatchUnloadEvents() URL = <null>
[0608/102421.411727:VERBOSE1:document.cc(4054)] การส่ง UnloadEvent จริง: URL = <null>
[0608/102421.421675:VERBOSE1:network_delegate.cc(32)] NetworkDelegate::NotifyBeforeURLRequest: /path/to/jquery.min.js
[0608/102421.424968:VERBOSE1:network_delegate.cc(32)] NetworkDelegate::NotifyBeforeURLRequest: /path/to/jquery-ui.min.js
[0608/102421.429480:VERBOSE1:network_delegate.cc(32)] NetworkDelegate::NotifyBeforeURLRequest: /path/to/howler.min.js

นี่เป็นแนวทางที่ถูกต้องหรือไม่ในการทำให้สิ่งนี้ใช้งานได้ (และถ้าเป็นเช่นนั้น ทำไมจึงไม่เป็นเช่นนั้น) หรือฉันควรใช้ Selenium/Puppeteer/อย่างอื่น

ขอบคุณคริส

[กัน: ฉันได้ลอง a จำนวนสิ่งต่างๆ เพื่อพยายามลบข้อผิดพลาด "ไม่รองรับ Passthrough, GL เป็น swiftshader" แต่ไม่สำเร็จ แม้ว่าจะดูเหมือนว่าจะไม่ป้องกันเบราว์เซอร์จากการเข้าถึงหน้าก็ตาม]

Score:1
ธง cg

ฉันจัดการเพื่อให้สิ่งนี้ทำงานได้โดยการเรียกใช้ Puppeteer แทนที่จะพยายามโต้แย้ง Chromium จากบรรทัดคำสั่ง ฉันเคยใช้ คำตอบนี้ เพื่อ (หวังว่า) เปิด Puppeteer ด้วย args ต่อไปนี้เพื่อให้เสียงเริ่มโดยอัตโนมัติ

 this.browser = รอคอยการเชิดหุ่นเปิดตัว ({
     หัวขาด: จริง,
     ละเว้นDefaultArgs: [
         "--ปิด-เสียง",
     ]
     หาเรื่อง: [
         "--autoplay-policy=no-user-gesture-required",
     ]
  });

หลังจากตั้งค่าตัวซิงก์เริ่มต้นใน PulseAudio และเพิ่ม ~/.ascoundrc (ตามด้านบน) ทุกอย่างก็ใช้งานได้ (ตัวซิงก์เสียงที่ DarkIce > IceCast > ออกอากาศเลือก) ฉันน่าจะใช้ pm2 เพื่อดูแล Puppeteer แต่สำหรับตอนนี้มันเป็นวิธีแก้ปัญหาที่ใช้งานได้

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา