2013-03-18 17 views
6

Zajmuję VOIP aplikacji na OSX i iOS i będzie używany AudioQueue dla strumienia audio, co chcesz wiedzieć, to domyślnie robi AudioQueue wspierać echa akustycznego czy musimy dodać wsparcie dla niej,
Jeśli musimy wdrożyć, wierzę, niektóre otwarte biblioteki źródło musi być wdrożone jak Speex są jakieś integracja Przykład dostępne pokazy AudioQueue z Speex lub jakakolwiek inna bibliotekaAEC (echa Pomoc) w OSX Korzystanie AudioQueue

+1

Czy byłeś w stanie rozwiązać swój problem? Mam to samo pytanie. – Vincenzo

Odpowiedz

13

o ile mogę znaleźć , musisz użyć Audio Unit, aby uzyskać dostęp do anulowania echa systemu. Robisz to, używając kAudioUnitSubType_VoiceProcessingIO zamiast kAudioUnitSubType_RemoteIO.

Prawdopodobnie chcesz użyć urządzenia audio tak, aby kontrolować swoją latencję.

Można użyć renderowania funkcji zwrotnej, aby uzyskać dane z kolejki audio i przekazać ją do jednostki I/O. Wychodzące, użyj AudioUnitRender.

+0

dziękuję David, ale jestem na OSX nie w iOS czy to zadziała? – Amitg2k12

+1

Zespół Voice Processing IO jest dostępny na 10.7 lub nowszy: https://developer.apple.com/library/mac/#documentation/AudioUnit/Reference/AUComponentServicesReference/Reference/reference.html#//apple_ref/doc/uid/ TP40007291 –

+0

jestem na OSX najnowszego SDK i ustawić VoiceProcessingIO ale nadal Echo nadchodzi, żadnych rozwiązań – Amitg2k12

-1

Dzięki David i This post, zdałem sobie sprawę następujące zmiany są potrzebne do echa na iOS:

desc.componentSubType = kAudioUnitSubType_VoiceProcessingIO 

To pozwoli sprzętu echa według apple documentation. Jednak nadal musisz używać określonych flag do opisu AudioStream:

audioFormat.mFormatFlags = kAudioFormatFlagsCanonical;