เอาต์พุตเสียงเริ่มล่าช้า


10

ผ่านเสียงที่ได้ยิน SPDIF เริ่มช้าเช่นในกล่องโต้ตอบทดสอบเสียงฉันสามารถได้ยินเสียง "ซ้าย" ที่สุดเมื่อเสียงควรพูดว่า "ด้านหน้าซ้าย"

เมื่อฉันpavucontrolเปิด (เป็นพื้นหลัง) ในขณะที่คลิกที่เสียงทดสอบมันจะเริ่มขึ้นทันที

โดยทั่วไปแล้วการเริ่มต้นไฟล์เสียง / สื่อใด ๆ การเริ่มต้นนั้นไม่สามารถส่งออก / รับฟังได้ การเชื่อมต่อด้วยแสงหรือโคแอกเชียล ดูเหมือนว่าจะมีผลกับ Ubuntu 12.10 เท่านั้นไม่ใช่ในกรณี 12.04 ดูเหมือนจะไม่เป็นเช่นนี้ใน 13.04!

จากubuntuusers.deความช่วยเหลือเล็กน้อย - เล่นไซนัสที่ฟังไม่ได้เพื่อให้ spdif มีชีวิตอยู่:

apt-get install sox
play -n -c2 synth sin gain -100   # -c2 for two channels

ฮาร์ดแวร์บน ASRock 970 Extreme3 ​​(และ GeForce 210):

$ cat /proc/asound/cards
 0 [SB             ]: HDA-Intel - HDA ATI SB
                      HDA ATI SB at 0xfe200000 irq 16
 1 [NVidia         ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0xfe080000 irq 25

$ cat /proc/asound/card0/codec* | grep Codec
Codec: Realtek ALC892

pulseaudio -vวางผลลัพธ์บางส่วนไปที่http://paste.ubuntu.com/5629082/

ฉันสามารถอัพเกรดจาก pulseaudio 2.1 ได้ไหม?

เอาท์พุท Ubuntu สด 13.04 วางที่http://paste.ubuntu.com/5630475/ - จริงๆแล้วที่นี่เฉพาะการร้องขอเสียงครั้งแรก (หรือหลังจากผู้ใช้หยุดชั่วคราวนาน) เริ่มล่าช้าเช่นหลังจาก "... ซ้าย" "ด้านหน้าขวา" จะได้ยินในขณะที่ 12.10 จะเป็น "... ซ้าย", "... ขวา"


1
คุณสามารถให้ข้อมูลเพิ่มเติมเกี่ยวกับการ์ดเสียงและสิ่งที่เชื่อมต่อได้หรือไม่ คุณสามารถลองใช้ jackd ได้ไหมถ้าเป็นเช่นนี้ เพราะมันอาจเกี่ยวข้องกับ Pulse Audio และไม่ใช่กับการ์ดเสียง
ttoine

Realtek ALC892 ดูเหมือนว่าจะนำเสนอเพลงฮิตจำนวนมากใน google เพื่อขุดผ่าน: /
พิมพ์

การติดตั้งไดรเวอร์จากผู้ผลิตในcommunity.linuxmint.com/tutorial/view/1236ก็ไม่ได้ช่วยอะไรเช่นกัน อ่านหนึ่งบรรทัด: {.id = 0x10ec0892, .name = "ALC892", .patch = patch_alc662},
พิมพ์

คำตอบ:


27

ฉันรู้ว่าฉันกำลังจะชุบชีวิตเธรดเก่า แต่ฉันได้พบวิธีแก้ปัญหาที่ใช้งานง่ายที่สามารถแก้ไขปัญหาได้

จาก: https://wiki.archlinux.org/index.php/PulseAudio

หากต้องการปิดใช้งานการโหลดโมดูล module-suspend-on-idle ให้คอมเม้นต์บรรทัดต่อไปนี้ในไฟล์คอนฟิกูเรชันที่ใช้งานอยู่ (~ / .config / pulse / default.pa หรือ /etc/pulse/default.pa):

### Automatically suspend sinks/sources that become idle for too long
# load-module module-suspend-on-idle

ในที่สุดก็เริ่ม PulseAudio ใหม่เพื่อใช้การเปลี่ยนแปลง


นี่คือคำตอบสำหรับฉันเช่นกัน แต่ก็มีข้อเสีย ฉันมีโปรแกรมเสียงบางตัวใช้ ALSA เพื่อส่งรูปแบบเฉพาะไปยังตัวรับสัญญาณโฮมเธียเตอร์โดยตรงเพื่อถอดรหัสแทนที่จะใช้ PA บางครั้งก็สุ่ม resampling วิธีนี้ใช้งานได้ง่ายเพราะฟังก์ชั่นการระงับเดียวกันนี้มาก
Moilleadóir

3

ดูเหมือนว่าการจัดการพลังงานกำลังป้องกันการ์ดเสียงจากการส่งตัวอย่างข้อมูลเสียงแรก จากhttp://wiki.gentoo.org/wiki/Power_management/Soundcardบิตที่สำคัญมีดังนี้:

การปรับแต่งรันไทม์

คุณสามารถปรับไดรเวอร์ในระบบไฟล์ sysfs ภายใต้ / sys / module / snd_hda_intel / พารามิเตอร์

ปุ่ม power_save_controller ควบคุมหากเปิดใช้งานโหมดประหยัดพลังงาน มันตั้งไว้ล่วงหน้าโดยตัวเลือกเคอร์เนล ... ประหยัดพลังงาน ....

ลูกบิด power_save ตั้งค่าการหมดเวลาเป็นวินาที มันตั้งไว้ล่วงหน้าโดยตัวเลือกเคอร์เนลหมดเวลาเริ่มต้น ...

PM-utils

pm-utils มีสคริปต์เพื่อเปิดใช้งานโหมดประหยัดพลังงานเมื่อใช้แบตเตอรี่และปิดใช้งานเมื่อใช้กับ AC มันจะแทนที่ค่าเริ่มต้นของเคอร์เนล

หากคุณใช้ pm-utils แต่ไม่ต้องการกฎระเบียบประเภทนี้ให้ปิดการใช้งานสคริปต์: root # touch /etc/pm/power.d/intel-audio-powersave

จากข้อความด้านบนสิ่งที่ต้องลองคือ:

  1. ในเทอร์มินัลให้เรียกใช้สิ่งต่อไปนี้แล้วลองเล่นเสียงอีกครั้ง:

    echo N | sudo tee /sys/module/snd_hda_intel/parameters/power_save_controller
    

    หากเสียงดีคุณต้องทำให้มันถาวรโดยการเพิ่มไฟล์ใหม่ใน /etc/modprobe.d/ ด้วยเนื้อหาต่อไปนี้:

    options snd_hda_intel power-saving=N
    
  2. เรียกใช้sudo touch /etc/pm/power.d/intel-audio-powersaveและรีบูต

    หากการแก้ปัญหาทำงานแล้วเสียงควรเล่นตามปกติถ้าไม่ลบไฟล์อีกครั้ง:

    sudo rm /etc/pm/power.d/intel-audio-powersave
    

ถ้าไม่ใช่งานพวกนี้ล่ะก็ฉันหมดความคิด :-)


คำตอบที่ยอดเยี่ยมขอบคุณมาก! น่าเสียดายที่ยังไม่มีการเปลี่ยนแปลง
พิมพ์

ฉันควรจะทำ "ไฟล์ใหม่" ประเภทไหนใน / etc / modprobe.d /?
Bhikkhu Subhuti

1

นี่เป็นปัญหาทั่วไปที่มี SPDIF / สัญญาณออกดิจิตอลและตัวรับสัญญาณประมวลผลสัญญาณ ฯลฯ หากไม่มีสัญญาณสัญญาณตัวรับสัญญาณจะเข้าสู่โหมดไม่ได้ใช้งาน ใช้เวลาไม่กี่ร้อยถึงไม่กี่ร้อยมิลลิวินาทีในการเริ่มเล่นสัญญาณ วิธีแก้ไขเท่านั้นคือทำให้ SPDIF ของคุณส่งสัญญาณ SOME อย่างต่อเนื่องทำให้การประมวลผลสัญญาณยังคงอยู่ตลอดเวลา ในขณะนี้ฉันเพิ่งแก้ไขปัญหานี้ใน Windows โดยใช้ยูทิลิตี้ตัวเล็ก ๆ ที่ผู้ชายเขียนไว้ใน. NET ซึ่งส่งสัญญาณเป็นโมฆะตลอดเวลา เขาเรียกมันว่า SPDIF Keep-Alive สิ่งนี้ทำให้สัญญาณไหลและผู้รับของฉันกำลังฟังอยู่ตลอดเวลา ฉันยังไม่เห็นวิธีการทำเช่นนี้สำหรับ Linux แต่ฉันคิดว่าการสนับสนุนในการสร้างสิ่งนี้คือทุกที่ หวังว่านี่จะช่วยให้ใครบางคนมีความคิดเกี่ยวกับสิ่งที่จะค้นหาหรือจะดูต่อไป! -K9SPY

เสียงดิจิตอลให้ชีวิตอยู่รอด SPDIF Keep-Alive ให้ชีวิต TOSLINK รักษาชีวิตให้หมดเวลาออกไปสู่โหมดสลีปปิดเสียง SPDIF


1
  1. ค้นหาไฟล์ PulseAudio config ที่มีload-module module-suspend-on-idleบรรทัด:

    neatsoft@desktop:~$ grep module-suspend-on-idle /etc/pulse/*
    /etc/pulse/default.pa:load-module module-suspend-on-idle
    /etc/pulse/system.pa:load-module module-suspend-on-idle
    
  2. คอมเม้นท์ว่า

  3. รีสตาร์ท PulseAudio เพื่อใช้การเปลี่ยนแปลง:

    pulseaudio -k

เพิ่งทดสอบกับ Ubuntu 17.04 และใช้งานได้ดี


สิ่งนี้ใช้ได้กับฉันใน 19.04 ยกเว้นในส่วนของการรีสตาร์ท ฉันต้องรีบู๊ตเพื่อรีสตาร์ท pulseaudio เพราะpulseaudio -kให้ข้อผิดพลาดบางอย่างกับฉัน
muclux

0

คำตอบที่ได้รับการยอมรับเกี่ยวกับการไม่โหลดmodule-suspend-on-idleไม่ได้แก้ไขปัญหาสำหรับผม ในการ "แก้ไข" สิ่งนี้ฉันต้องปล่อยให้คำสั่งเงียบอย่างต่อเนื่องทำงานในพื้นหลังให้ดูUPDATE 2จากคำถามต่อไปนี้:

และฉันทำซ้ำปัญหานี้ทั้งในลำโพงภายในแล็ปท็อปและพีซีผ่าน HDMI และหูฟังไม่จำเป็นต้องใช้ SPDIF ใน ArchLinux และ Ubuntu ล่าสุด

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