Tôi đang xem xét phát triển một ứng dụng yêu cầu phát trực tiếp âm thanh. Tôi muốn sử dụng một số thư viện mã nguồn mở đa nền tảng (windows/linux/BSD) được viết bằng C hoặc C++ mặc dù viết nó bằng cách sử dụng các API âm thanh của hệ điều hành tương ứng vẫn là một tùy chọn.âm thanh nền tảng API
Tôi đã đọc một chút về các thư viện âm thanh khác nhau, bao gồm SFML, SDL và PortAudio. Phải thừa nhận rằng, tôi chưa nghiên cứu đầy đủ về âm thanh trong FreeBSD và Linux (cách tương tự là nó giữa 2?)
Các yêu cầu chính sẽ là
- nhận được âm thanh từ microphone chọn/micro để gửi qua mạng,
- gửi dữ liệu đến lựa chọn thiết bị đầu ra,
- xử lý âm thanh (lọc, dọn dẹp tiếng ồn, ghép kênh v.v.) nhưng điều này có thể được thực hiện khi tôi có dữ liệu âm thanh, chính thư viện KHÔNG cần để có thể làm được điều này.
- có độ trễ khá thấp
mối quan tâm chính của tôi là các API này đề cập dường như là mục tiêu chủ yếu cho trò chơi (nơi âm thanh thường được nạp từ đĩa và không có nhiều, nếu có, ghi âm liên quan đến hơn được phát trực tuyến qua mạng có tầm quan trọng ngang nhau giữa quá trình ghi và phát lại
Có ai có bất kỳ gợi ý/cảnh báo/đề xuất nào về các API âm thanh này hoặc về lợi thế/bất lợi của việc thực hiện và thực hiện điều này trong các hệ điều hành tương ứng hay không API?
LƯU Ý: trong khi điều này: "Câu hỏi yêu cầu chúng tôi đề xuất hoặc tìm sách, công cụ, thư viện phần mềm, hướng dẫn hoặc tài nguyên ngoài trang web khác là chủ đề cho Stack Overflow" KHÔNG đặt câu hỏi ngoài chủ đề, khi người ta cũng xem xét " vì họ có xu hướng thu hút các câu trả lời và spam có ý kiến "thì tôi không nghĩ rằng câu hỏi này nên được đóng lại. Một người nào đó tìm kiếm một thư viện như mô tả sẽ khó ép để tìm thấy bất cứ điều gì và câu trả lời cho câu hỏi này thực tế tóm tắt tất cả các tùy chọn có sẵn. Điều này là như vậy trong "thường bao gồm ... các công cụ phần mềm thường được sử dụng bởi các lập trình viên;" loại câu trả lời được chấp nhận.
Bạn đã xem Pulseaudio chưa? –
Viết cho PulseAudio chỉ có vẻ hợp lý nếu viết riêng cho các bản phân phối LINUX đã được thiết lập – msam