Mục lục:

Phát cùng một bản nhạc trong nhiều phòng: 3 bước
Phát cùng một bản nhạc trong nhiều phòng: 3 bước

Video: Phát cùng một bản nhạc trong nhiều phòng: 3 bước

Video: Phát cùng một bản nhạc trong nhiều phòng: 3 bước
Video: Mike - lời tâm sự số 3 (lyrics video) 2024, Tháng mười một
Anonim
Phát cùng một bản nhạc trong nhiều phòng
Phát cùng một bản nhạc trong nhiều phòng

Chào mọi người, Tôi không biết bạn thế nào nhưng tôi thích có cùng một bản nhạc trong tất cả căn hộ của mình mà không cần vặn âm thanh quá lớn. Vì vậy, sau khi nghiên cứu một chút về vấn đề này, tôi quyết định xây dựng một số loa kết nối bằng wifi với cùng một máy chủ âm nhạc để phát cùng một bản nhạc trong một số phòng và đặc biệt là trong phòng tắm.

Hệ thống dựa trên công nghệ GStreamer, nền tảng của một số phần mềm tuyệt vời như VLC và trên loa có khả năng phát wifi bằng Raspberry Pi.

Bước 1: Xây dựng loa cho phòng tắm

Xây dựng một loa cho phòng tắm
Xây dựng một loa cho phòng tắm
Xây dựng một loa cho phòng tắm
Xây dựng một loa cho phòng tắm
Xây dựng một loa cho phòng tắm
Xây dựng một loa cho phòng tắm

Danh sách phần:

  • một loa chống phòng tắm
  • bộ khuếch đại 2W (hoạt động trên 12v)
  • Raspberry Pi Zero (hoạt động trên 5v)
  • một Pimoroni Phat DAC
  • thẻ SD
  • một nút BẬT / TẮT
  • bộ đổi nguồn 12v + phích cắm tương thích
  • bước xuống DC / DC (12v-> 5v)
  • một hộp điện
  • một số dây cáp

Việc xây dựng khá đơn giản.

Về mặt điện tử, hãy làm theo sơ đồ ASCII này.

  • Bộ khuếch đại nút BẬT / TẮT cắm DC
  • Nút BẬT / TẮT DC / DC bước xuống Raspberry Pi
  • Loa khuếch đại DAC Raspberry Pi Phat

Về mặt cơ khí, khoét tất cả các lỗ cần thiết trên hộp điện, cho mọi thứ vào bên trong và chỉ vậy thôi.

Sử dụng kỹ thuật này, bạn có thể tạo ra tất cả các loại loa mà bạn muốn.

Bước 2: Phía phần mềm

Tất cả mặt phần mềm đều dựa trên khung đa phương tiện mã nguồn mở, GStreamer. Tôi chỉ sử dụng Linux nhưng nó tồn tại trên các hệ điều hành khác nhau, vì vậy tôi tưởng tượng rằng tất cả đều có thể được điều chỉnh cho hệ điều hành khác.

Để bắt đầu, bạn phải cài đặt Raspbian Lite trên Pi, PHAT DAC và GStreamer 1.0 với các plugin "tốt". Trên máy tính được sử dụng làm máy chủ âm nhạc, bạn cần có cùng một GStreamer. Tôi sẽ không trình bày chi tiết những phần đó vì những người khác đã làm điều này tốt hơn tôi. Điều cuối cùng cần thiết là Pi và máy chủ âm nhạc phải được kết nối với cùng một mạng bằng cáp hoặc wifi.

Để kiểm tra xem GStreamer có được cài đặt chính xác hay không, bạn có thể sử dụng các dòng lệnh đó.

Trên loa:

$ gst-launc-1.0 cổng udpsrc = 5000 caps = 'application / x-rtp, media = (string) audio, clock-rate = (int) 44100, encoding-name = (string) L16, encoding-params = (string) 1, các kênh = (int) 1, tải trọng = (int) 96 '! rtpL16depay! audioconvert! autoaudiosink

Trên PC:

$ gst-khởi chạy-1.0 audiotestsrc! audioconvert! audio / x-raw, format = "(string) S16BE", layout = "(string) interleaved", channel = 1, rate = 44100! rtpL16pay! máy chủ liên kết udpsink = cổng RASPBERRYPI_IP = 5000

Sau khi bạn đặt địa chỉ IP tốt thay vì "RASPBERRYPI_IP", bạn sẽ nghe thấy âm thanh hình sin trên loa. Đó không phải là điều bạn sẽ muốn nghe trong một thời gian dài, vì vậy đừng đặt âm lượng quá lớn.

Một số giải thích: PC tạo ra âm thanh hình sin bằng cách sử dụng "audiotestsrc", "audioconvert! Audio / x-raw, format =" (string) S16BE ", layout =" (string) interleaved ", channel = 1, rate = 44100" âm thanh ở định dạng tốt được hiểu bởi "rtpL16pay" tạo ra các gói âm thanh và cuối cùng "udpsink" gửi các gói bằng giao thức UDP. Trên loa, nó giống nhau nhưng ngược lại, "udpsrc" khôi phục thông lượng âm thanh, "rtpL16depay" de-packets và "audioconvert! Autoaudiosink" chuyển đổi âm thanh để khớp với định dạng của card âm thanh tự động và tất nhiên, phát nó.

Vì vậy, bây giờ những thứ cơ bản đã hoạt động, đã đến lúc phải đi xa hơn. Mục đích là để chặn âm thanh của một ứng dụng để gửi nó qua mạng.

- Chúng tôi tạo ra một đầu ra giả

$ pactl load-module module-null-chìmink_name = multiHP

- Chúng tôi kết nối đầu vào với đầu ra giả (tắt tiếng ứng dụng đã chọn (đầu vào))

$ pacmd list-sinks (danh sách kết quả đầu ra)

$ pacmd list-chìm-input (danh sách đầu vào)

$ pacmd di chuyển-chìm-đầu vào% đầu vào% đầu ra (thay thế% đầu vào và% đầu ra bằng một trong các danh sách tương ứng)

- Chúng tôi đặt card âm thanh ở mức tối đa

$ pactl set-chìm-volume 0 100%

- Chúng tôi thử nghiệm trên PC cách khôi phục đầu ra giả (khôi phục âm thanh)

$ gst-khởi chạy-1.0 pulsesrc device = multiHP.monitor! audioconvert! autoaudiosink

Bạn sẽ nghe lại âm thanh của ứng dụng mà bạn đã chọn.

Tuyệt vời! Bây giờ đã đến lúc thực hiện các dòng lệnh cuối cùng. Dưới đây là các dòng lệnh trong trường hợp 2 loa cùng âm thanh do PC phát.

Trên mỗi Loa:

$ gst-launc-1.0 cổng udpsrc = 5000 caps = 'application / x-rtp, media = (string) audio, clock-rate = (int) 44100, encoding-name = (string) L16, encoding-params = (string) 2, tải trọng = (int) 96 '! rtpL16depay! audioconvert! autoaudiosink

Trên PC:

$ gst-khởi chạy-1.0 pulsesrc device = multiHP.monitor! audioconvert! audio / x-raw, format = "(string) S16BE", layout = "(string) interleaved", channel = 2, rate = 44100! rtpL16pay! tên tee = t t. ! xếp hàng ! udpsink máy chủ =% cổng addrpi1 = 5000 t. ! xếp hàng ! udpsink máy chủ =% cổng addrpi2 = 5000 t. ! xếp hàng ! audioconvert! autoaudiosink

Bước 3: Kết luận

Hướng dẫn này chỉ là bước đầu tiên cho một dự án hoàn chỉnh. Nó chỉ để giải thích nguyên tắc. Giờ đây, bạn có thể tự động hóa bằng cách tạo một số tập lệnh trên khởi động Raspberry Pi và trên PC. Bạn có thể điều chỉnh lệnh GStreamer tùy theo nhu cầu của mình. Cá nhân tôi đã sửa đổi tài liệu hướng dẫn trước đây của mình (BRAND NEW OLD RADIO) để sử dụng nó như một diễn giả. Có vô số việc cần làm để cải thiện hệ thống âm thanh đa phòng này. Đặc biệt, tất cả các loa không được đồng bộ nên bạn sẽ có một số biến thể khi thay đổi từ phòng này sang phòng khác.

Tôi hy vọng rằng bạn sẽ cố gắng và cải thiện tài liệu hướng dẫn này.

Đừng ngần ngại đặt câu hỏi nếu bạn cần thông tin chi tiết.

Người mày mò giỏi!

Đề xuất: