2013-06-03 24 views
6

Chúng tôi đang phát triển một ứng dụng nhạc bằng AVPlayer, đây là giai đoạn cuối. Tất cả mọi thứ đã được theo dõi cho đến khi chúng tôi bắt đầu làm việc trên iPod Equalizer áp dụng hiệu ứng cho bài hát dòng. Chúng tôi có thể tìm nạp danh sách Equalizers được tích hợp khi chúng tôi áp dụng AudioUnitProperty chúng tôi không thấy bất kỳ hiệu ứng nào trong các bài hát.Thêm hiệu ứng Bộ chỉnh âm iPod bằng AVPlayer

Phản hồi có giá trị của bạn sẽ hữu ích cho chúng tôi.

+0

có thể trùng lặp? http: // stackoverflow.com/q/7485654/207616 –

+0

Tại sao bạn không thử sử dụng https://github.com/bartolsthoorn/NVDSP – iphonic

+0

@iphonic này, chúng tôi đã sử dụng NVDSP nhưng chúng tôi không nhận được cùng một hiệu ứng mà chúng tôi nhận được từ Equalizer mặc định. – Anand

Trả lời

4

Bạn chắc chắn có thể hoàn thành nhiều hiệu ứng EQ khác nhau bằng cách sử dụng AUGraphAudioUnits trong iOS.

Về cơ bản, bạn sẽ chèn hiệu ứng giữa nguồn và đầu ra của âm thanh. Bạn có thể sử dụng những thứ như một bộ trộn đa kênh để có một số điều khiển hoặc các đơn vị âm thanh phức tạp hơn trong một AUGraph để có được sự kiểm soát lớn hơn nhiều đối với Âm thanh. Sử dụng AudioUnits, nếu bạn cần, bạn thậm chí có thể nhận được ở mỗi mẫu âm thanh trong bộ đệm. Điều này sẽ yêu cầu bạn phải tái mã hóa một số xử lý âm thanh của bạn, nhưng nó chắc chắn sẽ cho phép bạn áp dụng các hiệu ứng EQ.

Bạn có thể sử dụng Đơn vị hiệu ứng iPod, chính xác là đơn vị giống như iOS sử dụng để áp dụng các hiệu ứng đó khi phát nhạc. Điều này sẽ cho bạn kết quả phù hợp nhất với âm thanh có hiệu lực, vì nó giống hệt nhau AudioUnit.

Từ Apple:

iPod EQ Audio Unit Description (di chuyển xuống trang)

Type Definition for Audio Unit Subtype

Đơn vị iPod EQ cung cấp một bộ các đường cong cân bằng âm được xác định trước khi cài đặt trước nhà máy. Lấy mảng cài đặt EQ có sẵn bằng cách truy cập thuộc tính kAudioUnitProperty_FactoryPresets của đơn vị âm thanh. Sau đó bạn có thể áp dụng một cài đặt bằng cách sử dụng nó làm giá trị cho thuộc tính kAudioUnitProperty_PresentPreset.

Bạn sẽ chèn đơn vị này giữa nguồn âm thanh (có thể là tệp, đầu vào micrô, v.v.) và đầu ra âm thanh của bạn (loa, tai nghe, v.v.). Sau đó, bạn có thể áp dụng bất kỳ hiệu ứng iPod EQ nào cho âm thanh của mình.

Dưới đây là các thuộc tính để sử dụng khi xác định iPod EQ Đơn vị:

kAudioUnitType_Effect

kAudioUnitSubType_AUiPodEQ

kAudioUnitManufacturer_Apple

Ngoài ra, hãy chắc chắn kiểm tra các Audio Unit Hosting Guide từ Apple . Trang này chứa các liên kết đến nhiều tài liệu có liên quan khác mà bạn sẽ muốn tham khảo.

2

Sử dụng MTAudioProcessingTap + AUGraph + AudioUnit thể làm điều đó, bản demo chính thức AudioTapProcessor cho bạn thấy làm thế nào để sử dụng MTAudioProcessingTap để xử lý dữ liệu âm thanh và sau đó kết hợp với AVPlayer vào quá trình gọi lại nó, thay thế nó AudioUnit bằng cách sử dụng AUGraph + AudioUnit

+0

Làm thế nào để bạn thực hiện một biểu đồ bên trong một MTAudioProcessingTap? Tôi nghĩ chúng tôi chỉ có thể sử dụng AudioUnit – DEADBEEF

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