เสียงไวน์เล่นเร็วเกินไปและเสียงแตกอย่างน่ากลัว


14

เสียงในแอปพลิเคชันของฉันเล่นด้วยความเร็วสูงเป็นพิเศษและเสียงแตกอย่างน่ากลัว ใน Spotify เพลงจะเล่นที่ความเร็วประมาณ 3x ฉันได้ Googled นี้มาไม่นานและทั้งหมดที่ฉันสามารถทำได้คือรายงานข้อผิดพลาดตั้งแต่เดือนมกราคม 2012ซึ่งทำเครื่องหมายว่าปิดแล้ว

ฉันได้ทดสอบ Spotify และ Hearthstone โดยใช้ PlayOnLinux พร้อมรุ่นไวน์ 1.5.0, 1.6, 1.6.0, 1.7.0, 1.7.8 รวมถึงระบบไวน์ซึ่งเป็นรุ่น 1.4.1 พวกเขาทุกคนมีปัญหาเรื่องเสียงแตกเสียงเดียวกัน นี่ทำให้ฉันคิดว่านี่ไม่ใช่ข้อผิดพลาดของ Wine

ขั้นตอนในการทำซ้ำจากรายงานข้อบกพร่อง:

ขั้นตอนในการสร้างซ้ำ:
1. winecfg
2. ไปที่แท็บ Audio
3. ทดสอบเสียง

ผลลัพธ์จริง:
เสียงแตกที่ผลิต

ผลลัพธ์ที่คาดหวัง:
เอาท์พุทปกติ

ยังทำให้เกิดเสียงแตกสำหรับฉันด้วย ในขณะที่ทำมัน winecfg พิมพ์ต่อไปนี้เพื่อเทอร์มินัล:

p11-kit: ไม่สามารถโหลดโมดูล: /usr/lib/i386-linux-gnu/pkcs11/p11-kit-trust.so: / usr / lib / i386-linux-gnu / pkcs11 / p11-kit-trust ดังนั้น: ไม่สามารถเปิดไฟล์วัตถุที่ใช้ร่วมกัน: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
ข้อผิดพลาด: ole: CoInitializeEx พยายามเปลี่ยนรูปแบบเธรดของอพาร์ทเมนต์นี้จากแบบมัลติเธรดเป็นอพาร์ทเมนต์แบบเธรด
ALSA lib pcm.c: 7843: (snd_pcm_recover) underrun เกิดขึ้น
ALSA lib pcm.c: 7843: (snd_pcm_recover) underrun เกิดขึ้น
ALSA lib pcm.c: 7843: (snd_pcm_recover) underrun เกิดขึ้น
ALSA lib pcm.c: 7843: (snd_pcm_recover) underrun เกิดขึ้น

(บรรทัดแรกปรากฏตัวขึ้นเมื่อฉันเปิด winecfg 5 ครั้งสุดท้ายปรากฏขึ้นเมื่อฉันคลิกทดสอบเสียง)

เบาะแสอะไรที่อาจจะผิด? แจ้งให้เราทราบหากฉันสามารถให้ข้อมูลเพิ่มเติมใด ๆ


pulseaudio 1: 4.0-0ubuntu6 amd64

อาจจะเกี่ยวข้องหรือซ้ำกัน: askubuntu.com/questions/124602/ …
donquixote

คำตอบ:


24

เนื่องจากนี่เป็นผลลัพธ์แรกที่ได้รับจาก Google ฉันจึงคิดว่าฉันจะแบ่งปันประสบการณ์ที่นี่ สำหรับผู้ที่มองหาการแก้ไขด่วนให้ใส่สิ่งต่อไปนี้ในโปรไฟล์ ~ / .bashrc หรือ / etc / สำหรับการเปลี่ยนแปลงทั่วทั้งระบบ:

alias wine='PULSE_LATENCY_MSEC=60 wine'

นี่เป็นวิธีแก้ไขแบบเดียวกันกับที่ใช้กับ Skype และ PulseAudio 4.0 ขึ้นไปซึ่งทำงานในลักษณะเดียวกับไวน์ หวังว่านี่จะช่วยได้!

แก้ไข (12.01.2016) :

คุณสามารถเปิดใช้งานตัวแปรนี้ได้ทั่วโลกโดยเพิ่มบรรทัดนี้ใน ~ / .bashrc และออกจากระบบ / รีบูตเครื่อง

export PULSE_LATENCY_MSEC=60

หากคุณประสบปัญหาเกี่ยวกับเสียงในแอปพลิเคชันอื่น ๆ หลังจากนี้ให้ลบบรรทัดออกจากระบบหรือรีบูต หากคุณต้องการทดสอบชั่วคราวให้เปิดเทอร์มินัลใหม่แล้ววางบรรทัดนั้น ตอนนี้ทุกแอปพลิเคชันที่คุณเรียกใช้จากเทอร์มินัลนี้จะมีชุดตัวแปรและ PulseAudio จะตั้งค่าเวลาแฝง

ข้อมูลเพิ่มเติมเกี่ยวกับปัญหานี้และ 'แก้ไข': http://arunraghavan.net/2013/08/pulseaudio-4-0-and-skype/


สิ่งนี้ยังใช้งานได้เมื่อเริ่มต้นไวน์จาก PlayOnLinux และแอปพลิเคชันที่คล้ายกันหรือไม่ ฉันจะทดสอบ แต่ฉันไม่ทราบวิธียืนยันผล ...
Hubro

1
ไม่มีความคิดไม่เคยเล่น PlayOnLinux คุณสามารถทดสอบได้โดยพิมพ์คำสั่งด้านบนในเทอร์มินัลแล้วเรียกใช้บางอย่างจาก PlayOnLinux หากเสียงของคุณดีแสดงว่าใช้งานได้ หากไม่ใช่คุณสามารถลองตั้งค่าตัวแปรได้โดยตรงโดยเรียกใช้ "export PULSE_LATENCY_MSEC = 60" ในเทอร์มินัลแล้วเรียกใช้ PlayOnLinux จากเทอร์มินัลเดียวกัน มันจะ "สืบทอด" ตัวแปรและควรใช้งานได้
Iskren

บันทึกเบคอนของฉัน ฉันมีปัญหานี้มาหลายปีนี่เป็นสิ่งเดียวที่ทำงานได้ ฉันอยากรู้ว่าคุณจำวิธีแก้ปัญหานี้ได้จากที่ไหน เรารู้หรือไม่ว่าทำไมมันถึงได้ผล?
ดร. Hannibal Lecter

ฉันมีปัญหากับ PA4 และ Skype สักพักแล้วและกำลังค้นหาวิธีแก้ไข หลังจากนั้นไม่นานไวน์ก็เริ่มทำแบบเดียวกันดังนั้นฉันจึงลองใช้ skype fix แล้วก็ใช้งานได้ โพสต์นี้อธิบายได้ค่อนข้างดีว่าปัญหาคืออะไรและวิธีการที่ตัวแปรนี้แก้ไขได้: arunraghavan.net/2013/08/pulseaudio-4-0-and-skype
Iskren

ฉันกลัวว่าวิธีนี้จะไม่ทำงานใน POL แม้ว่าในตอนแรกมันดูเหมือนจะ
Tamsyn Michael

7

เรียกใช้เทอร์มินัล (Ctrl + Alt + T)

ออกคำสั่ง pulseaudio -k

ลองสร้างปัญหาใหม่ ไม่ควรเล่นไปข้างหน้าอย่างรวดเร็วอีกต่อไป

ในการบันทึกเสียงแตกบันทึกจะบอกให้คุณทราบว่าเรียบง่ายและมีบัฟเฟอร์ เปลี่ยนคุณภาพการสุ่มตัวอย่างของคุณ ... เสียสละคุณภาพเพื่อความเร็วและดูว่ามันช่วยแก้ปัญหาเรื่องไม่ได้หรือไม่


ฉันตื่นนอนเช้านี้และไม่สามารถสร้างปัญหาขึ้นมาใหม่ เสียงเล่นสมบูรณ์แบบในขณะนี้ สิ่งเดียวที่ฉันทำตั้งแต่เมื่อวานนี้คือเปลี่ยนเสียงจากชุดหูฟังของฉันเป็น HDMI วันนี้ฉันเปลี่ยนกลับและเสียงแตกก็หายไป มันอาจจะเกิดขึ้นอีกครั้งในไม่ช้าแม้ว่าฉันจะพยายามฆ่า pulseaudio แล้ว
Hubro

ปัญหาถูกส่งคืน ฉันลองpulseaudio -kแล้วเสียงทั้งหมดก็หายไป แถบเลื่อนเสียงใน Ubuntu เป็นสีเทาและไม่มีอุปกรณ์เสียงในตัวเลือกเสียง ต้องรีบูตเพื่อให้ได้เสียงกลับมา
Hubro

เสียงพัลส์ควรรีสตาร์ทด้วยตัวเองในครั้งต่อไปที่คุณมีปัญหาลอง sudo alsa force-reload
DeeJayh

นอกจากนี้เพียงแค่การออกคำสั่งpulseaudioควรเริ่มต้นสำรองให้คุณเมื่อมันไม่ได้เป็นของตัวเอง
DeeJayh

ไม่ใช่คอขวดของ CPU ฉันมีปัญหาเดียวกันกับ 4790k กับ World of Warcraft ฉันไม่เคยไป CPU มากกว่า 30% และฉันมีniceบน WoW และ Pulseaudio ตั้งค่าเป็น -20 มีบางอย่างในซอฟต์แวร์ที่ป้องกัน pulseaudio ไม่ให้เติมบัฟเฟอร์
Jonathan Baldwin

3

ในบางเกมหากคุณใช้ PlayOnLinux คุณสามารถเปิดตัวเรียกใช้งานด้วยโปรแกรมแก้ไขข้อความและเปลี่ยนExec=บรรทัดดังนี้:

Exec=env PULSE_LATENCY_MSEC=60 /usr/share/playonlinux/playonlinux --run "GameName" %F

1

ลองวิธีนี้ ส่วนใหญ่เกี่ยวข้องกับ PulseAudio โดยส่วนตัวแล้วฉันลบออกแล้วลองอีกครั้งและอันเดอร์รันก็หายไป แต่ฉันสูญเสียความสามารถในการย้ายสัญญาณเสียงไปยังที่เก็บเสียงที่แตกต่างกัน วิธีการรักษา pulseaudio และ ALSA นี้เล่นกันได้อย่างดีโดยไม่ต้องให้ pulseaudio ใส่ฮาร์ดแวร์โดยตรง


3
ในขณะที่สิ่งนี้อาจตอบคำถามในทางทฤษฎีมันก็ควรที่จะรวมส่วนสำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง
Stormvirux

มันไม่ใช่วิธีแก้ปัญหาสำหรับทุกคนที่ต้องการบันทึกเสียงที่มาจากแอปพลิเคชั่นไวน์หรือให้ความใส่ใจน้อยที่สุดในการแฝง (Pulse เล่นเร็วและหลวมพอกับความล่าช้าตามที่เป็นอยู่ แต่โยน dmix ในนั้นด้วย ... )
Jonathan Baldwin

0

เพิ่มโซลูชันที่อัปเดตแล้วตามด้านบน

http://tux-is-gaming.blogspot.com.au/2014/02/fixing-alsa-lib-pcmc7843sndpcmrecover.html?showComment=1394964710443#c3501258764752400662


2
ยินดีต้อนรับสู่ถาม Ubuntu! ในขณะที่สิ่งนี้อาจตอบคำถามในทางทฤษฎีมันก็ควรที่จะรวมส่วนสำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง
Stormvirux

1
เห็นด้วย แต่เป็นเพียงบิดเล็ก ๆ ที่ฉันเพิ่ม (ดูความคิดเห็นที่ด้านล่าง) เพื่อแก้ไขที่อธิบายไว้ค่อนข้างดีใน URL ที่ให้ไว้
Aaron Williams

0

หลังจากใช้งานได้ดีแอปพลิเคชั่น portaudio ก็เริ่มมีเสียงผิดปกติขณะที่ถ่ายภาพข้อผิดพลาด

ALSA lib pcm.c:7963:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:7963:(snd_pcm_recover) underrun occurred

การแก้ไข - ขั้นแรกคุณต้องฆ่ากระบวนการที่มีอยู่แล้ว ... ออก cmds เหล่านี้

    pulseaudio --kill

    jack_control start

เมื่อคุณทำกับข้างต้นแล้วออกคำสั่งเหล่านี้:

    jack_control exit

    pulseaudio --start

ตอนนี้แอพพลิเคชั่นเดียวกันก็เล่นเสียงผ่านทาง portaudio ได้ดี

cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.1 LTS"

dpkg -l|grep portaudio
ii  libportaudio2:amd64                         19+svn20140130-1build1                               amd64        Portable audio I/O - shared library
ii  libportaudiocpp0:amd64                      19+svn20140130-1build1                               amd64        Portable audio I/O C++ bindings - shared library
ii  portaudio19-dev                             19+svn20140130-1build1                               amd64        Portable audio I/O - development files
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.