2009-12-09 37 views
31

Trong tài liệu, tôi thấy một số khung công tác cho âm thanh. Tất cả chúng dường như được nhắm mục tiêu vào chơi và ghi âm. Vì vậy, tôi tự hỏi sự khác biệt lớn giữa những điều này là gì?Sự khác biệt giữa tất cả các khung âm thanh này là gì?

Hộp công cụ âm thanh, Đơn vị âm thanh, Quỹ AV và Âm thanh lõi. Hoặc tôi đã bỏ lỡ một hướng dẫn cung cấp một cái nhìn tổng quan tốt về tất cả những điều này?

Trả lời

38

Âm thanh chính là cấp thấp nhất trong tất cả các khung và cũng là phiên bản cũ nhất.

Hộp công cụ âm thanh nằm ngay trên Lõi âm thanh và cung cấp nhiều API khác nhau giúp dễ xử lý âm thanh hơn nhưng vẫn mang lại cho bạn nhiều quyền kiểm soát. Có ExtAudioFile, AudioConverter và một số API hữu ích khác.

Đơn vị âm thanh là một khuôn khổ để làm việc với các chuỗi xử lý âm thanh cho cả dữ liệu âm thanh được lấy mẫu và MIDI. Đó là nơi máy trộn và các bộ lọc và hiệu ứng khác nhau như reverb sống.

AV Foundation là một API cấp mới và khá cao để ghi và phát âm thanh trên hệ điều hành iPhone. Tất cả đều có sẵn trên cả OS X và iOS, mặc dù AV Foundation yêu cầu OS X 10.8+.

7

Core Audio không phải là thực sự là một khuôn khổ, nhưng cơ sở hạ tầng có chứa nhiều khuôn khổ khác nhau. Bất kỳ âm thanh nào xuất phát từ loa iOS của bạn, trên thực tế, được quản lý bởi Core Audio.

Mức thấp nhất trong Lõi âm thanh mà bạn có thể nhận được bằng cách sử dụng Đơn vị âm thanh mà bạn có thể làm việc bằng cách sử dụng hộp công cụ AudioToolbox và AudioUnit.

Khung công cụ AudioToolbox cũng cung cấp mức trừu tượng mức cao hơn để xử lý việc phát/ghi âm bằng AudioQueues hoặc quản lý các định dạng âm thanh khác nhau bằng cách sử dụng nhiều Dịch vụ chuyển đổi và tệp khác nhau.

Cuối cùng, AV Foundation cung cấp quyền truy cập cấp cao để phát một tệp cụ thể và MediaPlayer cho phép bạn truy cập (và phát lại) vào thư viện iPod của mình.

24

tôi đã thực hiện một tổng quan về đồ họa của Core Audio và (chứa) khuôn khổ của nó:

Audio APIs in iOS

Khung gần nhất với phần cứng là Audio Unit. Dựa trên đó có OpenALAudioToolbox với AudioQueue. Ở trên cùng, bạn có thể tìm thấy các khung ảnh Media PlayerAVFoundation (Âm thanh & Video).

Giờ tùy thuộc vào những gì bạn muốn làm: chỉ là một bản ghi nhỏ, hãy sử dụng AVFoundation, đây là cách dễ nhất để sử dụng. (Trình phát phương tiện không có tùy chọn để ghi, đó là - như tên gọi - chỉ là trình phát đa phương tiện.)

Bạn có muốn xử lý tín hiệu thời gian thực nghiêm trọng không? Sử dụng đơn vị âm thanh. Nhưng hãy tin tôi, đây là cách khó nhất. :-)

Với iOS 8.0 Apple giới thiệu AVAudioEngine, một hệ thống đồ thị âm thanh dựa trên Objective-C/Swift trong AV Foundation. Điều này đóng gói một số C-stuff bẩn từ Audio Units. Do sự phức tạp của đơn vị âm thanh nó có thể đáng xem.

đọc Hơn nữa trong Tài liệu của Apple:

Các vấn đề liên quan