Câu trả lời:
Không đến với một câu trả lời đầy đủ nhưng một số suy nghĩ về vấn đề đó.
Chúng ta hãy xem xét khía cạnh phần cứng: rất tiếc là sơ đồ không hữu ích cho Pi B + và thậm chí không có sẵn cho Pi2, vì vậy hiện tại chúng tôi đang bị mắc kẹt với B Rev 2.1.
Đầu ra âm thanh của giắc cắm tai nghe được tạo ra bởi PWM. Ngay từ GPIO của BCM2835, chân 40 và 45 thông qua bộ lọc RC Low-pass. (Xem sơ đồ , trang 2.)
Mặt khác, âm thanh trên HDMI được truyền kỹ thuật số. Wikipedia tuyên bố: "Đối với âm thanh kỹ thuật số, nếu thiết bị HDMI có âm thanh, thì bắt buộc phải thực hiện định dạng cơ bản: PCM âm thanh nổi (không nén)." Và thực sự, âm thanh analog dựa trên PWM được đề cập trước đó không được cung cấp cho đầu nối HDMI.
Vì vậy, bây giờ chúng tôi đã xác minh một số tin tức cũ: giắc cắm tai nghe analog so với HDMI kỹ thuật số. Theo quan điểm của tôi, cả hai nên được giải quyết một cách riêng biệt và độc lập, do đó cũng đồng thời (gần như). Bây giờ PulseAudio
sẽ có thể truyền phát từ một nguồn đến nhiều phần cứng âm thanh. Tôi vẫn tự hỏi tại sao không có gì để tìm thấy trên web liên quan đến điều này.
Tôi rất thích có thể làm điều tương tự là tốt. Ít nhất tôi cố gắng đóng góp cho xu hướng này với một số ý tưởng hy vọng trong sự phát triển hợp tác cuối cùng.
Điều tôi nghĩ đến là, có thể có (và nên) có hai trường hợp mô-đun trình điều khiển được tải song song, mỗi trường hợp cho một tuyến tín hiệu. Tuy nhiên, điều này sẽ yêu cầu một số tham số cấp độ mô-đun hạt nhân như trong mẫu lý tưởng bên dưới, mỗi mẫu tạo một thiết bị ALSA (số 0 cho HDMI và 3 cho tai nghe trong mẫu). Sau đó, bạn có thể gửi một số âm thanh cho một và khác cho người khác (hoặc sao chép cho cả hai).
Đã thử với google cho snd_bcm2835 trang chủ mã nguồn mô-đun (để đánh giá tính khả thi của bản vá đơn giản), nhưng không có may mắn (và thời gian), vì vậy tôi đã từ bỏ ngay bây giờ. Nếu ai đó tìm thấy nguồn và đóng góp liên kết, tôi sẽ xem xét lại.
GHI CHÚ !!! Dưới đây chỉ là mẫu lý tưởng của các lệnh tải mô-đun hạt nhân. Trong phần mềm Raspberry Pi thực tế không tồn tại các tham số như vậy (AFAIK)!
modprobe snd_bcm2835 out=hdmi alsa=0
modprobe snd_bcm2835 out=ear alsa=3