2013-07-08 18 views
14

Tôi đang sử dụng RemoteIO trong ứng dụng trò chuyện thoại của mình. Để bật tính năng hủy tiếng vọng, tôi đã thay đổi "kAudioUnitSubType_RemoteIO" thành "kAudioUnitSubType_VoiceProcessingIO" sau khi đặt "kAudioSessionCategory_PlayAndRecord" làm loại phiên. Bây giờ echo hủy hoạt động nhưng mức âm lượng đầu ra đã giảm đáng kể so với mức đầu ra RemoteIO trước đó. Có ai biết làm thế nào để có được mức âm lượng đầu ra tương tự khi sử dụng VoiceProcessingIO như khi sử dụng RemoteIO?Sử dụng loại phụ âm đơn vị VoiceProcessingIO thay vì RemoteIO làm giảm khối lượng đầu ra không mong muốn

+0

Tôi cũng muốn biết nguyên nhân cơ bản của vấn đề này và mọi giải pháp có thể xảy ra, vì tôi đã báo cáo vấn đề này là một vấn đề trong các dự án của riêng tôi. Nó không có vẻ như có một lý do nội tại cho VPIO được yên tĩnh hơn khi chỉ rơi vào một đơn vị RemoteIO làm việc khác với các cài đặt phiên âm thanh tương tự, nhưng điều đó dường như là hành vi. – Halle

+0

Tôi cũng gặp sự cố này. Tôi đã nhận thấy rằng nó giảm đáng kể khối lượng cho iOS 6 và ngược lại với iOS 5. Bạn đang thử nghiệm iOS nào? –

+0

Tôi cũng thấy rằng VPIO hoàn toàn phá vỡ trên iOS 7 trên các mẫu iPhone 5, 5s và tôi giả định là 5c. –

Trả lời

1

Tôi không nghĩ rằng có thể tính đến việc mất đầu ra về khối lượng. Theo Recording volume drop switching between RemoteIO and VPIO

"Không có API điều khiển tăng này (hoặc trong trường hợp thả của bạn) mức độ, mọi thứ đều nội bộ thiết lập bởi hệ điều hành tùy thuộc vào âm thanh phiên Thể loại (ví dụ VPIO dự kiến ​​sẽ được sử dụng với PlayAndRecord luôn) và đơn vị IO nào đã được thiết lập. "

Nó cũng sẽ hữu ích nếu bạn nói iOS bạn đang thử nghiệm vì chúng có mức giảm khác nhau về khối lượng đầu ra.

3

Tôi nhận ra rằng điều này đã không được trả lời trong một thời gian dài, nhưng tôi phát hiện ra rằng nếu bạn làm như sau giữa việc thay đổi đơn vị âm thanh:

AudioComponentInstanceDispose(_ioUnit); 

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:&nsError]; 

[[AVAudioSession sharedInstance] setActive:NO error:&nsError]; 

Sau đó, nó dường như không tạo ra như một vấn đề độ to lớn giữa mỗi đơn vị. Tại thời điểm này, chỉ cần khởi tạo lại đơn vị âm thanh của bạn và đặt loại phiên làm việc cho những gì bạn cần.

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