Tại sao bạn cần PulseAudio?


13

Tôi đang đọc và cố gắng hiểu tại sao mọi người muốn sử dụng Pulse Audio và tôi không hiểu. Tôi đã đọc https://www.linux.com/news/hardware/drivers/8100-why-you-should-care-about-pulseaudio-and-how-to-start-doing-it và tôi vẫn không nhận được một câu trả lời thuyết phục. Tôi có một thiết lập, với một card âm thanh. (Tôi không cần ghép nhiều âm thanh từ hoặc đến một vài card âm thanh). Tôi biết rằng tất cả các ứng dụng được viết bằng các API khác nhau, ALSA, OSS, JACK, v.v. Vì vậy, nếu tôi định cấu hình tất cả các khung đó để định tuyến âm thanh qua âm thanh xung, tôi sẽ nhận được lợi ích gì, so với việc cho phép tất cả các khung đó nói chuyện trực tiếp với card âm thanh người lái xe? Ngoài ra, tôi không thấy rằng Pulse Audio có API ứng dụng riêng. Vì vậy, tôi cần phải chọn một khung công tác nào đó (như ALSA). Cảm ơn


5
Đối với một điều, tôi biết tôi đã từng gặp vấn đề trong đó nếu chương trìnhA sử dụng soundcard, chương trìnhB không thể sử dụng nó cho đến khi chương trìnhA bị đóng. Ngay cả khi chương trìnhA không còn sử dụng nó. Trong trường hợp của tôi, thứ đó đã biến mất ngay sau khi pulseaudio xuất hiện. Có lẽ tôi có thể đã cấu hình ALSA hoặc OSS để cho phép nhiều chương trình truy cập vào soundcard nhưng tôi chưa bao giờ tìm ra cách.
terdon

2
Họ (pulseaudio) nghĩ rằng giải pháp cho nhiều hệ thống âm thanh trên linux là tạo ra một hệ thống âm thanh khác.
ctrl-d

Nếu đây là một hệ thống có thể mô phỏng các hệ thống khác hoặc nếu nó có giao diện đơn giản hơn, thì đó là giải pháp. Có vẻ như điều này đã không đạt được.
schily

Câu trả lời:


17

Đó là tất cả về ghép kênh.

Tôi không cần ghép nhiều âm thanh từ hoặc đến một vài card âm thanh

À, nhưng bạn làm! Nếu bạn muốn có thể phát âm thanh từ hai nguồn cùng một lúc, vì bất kỳ lý do gì, bạn cần ghép kênh.

OSX và Windows xử lý Ghép kênh trong Kernel (nhưng vẫn ở phần mềm), đó là lý do tại sao điều này không bao giờ / hiếm khi xuất hiện trên các nền tảng đó.

Tuy nhiên, trên Linux, với phần mềm như ALSA, ghép kênh được để lại cho trình điều khiển / triển khai / card âm thanh cụ thể.

Thật không may, không phải tất cả các thẻ và tất cả các trình điều khiển thực sự hỗ trợ điều này ra khỏi hộp.

Đó là nơi PulseAudio xuất hiện, thực hiện ghép kênh trong phần mềm, bất kể tình huống trình điều khiển / card âm thanh của bạn.

Nếu không có chức năng này, nếu bạn nói, sử dụng ALSA trực tiếp sans-PulseAudio, với một card âm thanh có hỗ trợ ghép kênh PCM kém trên Linux, bạn sẽ chỉ có thể nghe âm thanh từ một ứng dụng một lần.

Ví dụ: nếu bạn có video đang phát trong trình duyệt web và nhận được thông báo bằng Pidgin, bạn sẽ không nghe thấy âm thanh thông báo vì trình duyệt web của bạn đã có quyền kiểm soát thẻ âm thanh của bạn.

Bằng cách định tuyến tất cả âm thanh qua PulseAudio trước, vấn đề này được tránh.

Nguồn: Một cuộc trò chuyện IRC dài mà tôi từng có với nhà bảo trì Ubuntu cho ALSA, nơi tôi đã hỏi họ chính xác câu hỏi mà bạn đang hỏi bây giờ.


5
Cảm ơn @Zee! Đó là một câu trả lời tốt! Tuy nhiên tôi đã đọc alsa-project.org/main/index.php/Asoundrc này và tôi thấy rằng tôi có thể đạt được chính xác như vậy với các cấu hình ALSA, sử dụng "plugin". Tôi đã thử nghiệm nó và tôi đã có thể chơi nhiều phiên bản aplay cùng một lúc. Vì vậy, câu hỏi của tôi vẫn còn, tại sao tôi cần Pulse Audio, nếu tôi có thể làm tất cả điều này với ALSA :)?
Michael P

5
Này @MichaelP, rất vui được giúp đỡ. Lý do PulseAudio vẫn hữu ích là vì bạn có thể có nhiều máy chủ âm thanh đang chạy chứ không chỉ ALSA. Ví dụ: nếu ai đó đang thực hiện công việc chỉnh sửa âm thanh, họ sẽ thường sử dụng máy chủ âm thanh JACK cho điều đó, phù hợp hơn cho công việc âm thanh có độ trễ thấp, nhưng vẫn sử dụng ALSA cho âm thanh nói chung. Điều đó có thể không áp dụng cho bạn, nhưng PulseAudio có nghĩa là bạn không phải lo lắng về cách thức hoạt động của tất cả. Nếu bạn định cấu hình cho ALSA, bạn phải định cấu hình riêng từng trường hợp sử dụng. PulseAudio hoạt động VỚI Alsa và bất kỳ nguồn âm thanh nào bạn có thể sử dụng.
Zee Alexander

2
Điều đó đang được nói, PulseAudio có thể không đặc biệt hữu ích với bạn, nhưng nhìn chung các bản phân phối không phải là barebones cấu hình nó cho bạn ra khỏi hộp, vì vậy không có lý do thực sự nào để thay thế nó bằng plugin ALSA. Nếu bạn đang chạy một bản phân phối như Arch, nơi bạn phải tự cấu hình mọi thứ từ đầu, bằng mọi cách, hãy sử dụng plugin ALSA thay thế.
Zee Alexander

1
Cảm ơn @Zee Alexander, điều đó giải quyết tất cả sự nhầm lẫn của tôi. Cảm ơn bạn đã trả lời. Tôi ước PulseAudio sẽ giải thích điều đó tốt trên trang web của họ.
Michael P

2

Kể từ khi giới thiệu Dmix trong alsa, pulseaudio đã trở nên vô dụng. Bare alsa với Dmix bằng cách nào đó được kích hoạt sâu bên trong (tôi không phải đặt bất cứ thứ gì) hoạt động tốt hơn nhiều đối với tôi. Ví dụ, không có độ trễ trong khi mức âm thanh đang được thay đổi.

Chỉ cần gỡ cài đặt pulseaudio nếu bạn đang sử dụng alsa gần đây và cảm thấy ổn.


1
Chỉ có vấn đề popping này, gỡ cài đặt pulseaudio và bây giờ mọi thứ đều ổn (chơi từ nhiều nguồn cũng hoạt động rất tốt). Trình điều khiển Alsa 4.4.0-104, utils 1.1.0
klogd

1
WTaF. Vậy thì tại sao các distro vẫn kích hoạt daemon ghép kênh pulseaudio? Nó bị lag, lỗi AF và là thủ phạm đằng sau quá nhiều vấn đề âm thanh! Tôi vô hiệu hóa trình nền thay vì gỡ cài đặt toàn bộ gói, vì có các phụ thuộc với cấu hình ALSA, gói này dường như hoạt động tốt.
Đaminh Cerisano
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.