2013-08-16 5 views
0

RemoteIO 오디오 장치를 사용하여 소리를 생성하는 앱이 있습니다. 그러나 대기 시간 및 계산 문제로 인해이 시스템의 샘플링 속도는 8kHz보다 높을 수 없습니다. 다음 줄을 사용하여 샘플링 속도를 설정합니다.iOS에서 오디오 샘플링 속도 적용

AudioSessionSetProperty(kAudioSessionProperty_PreferredHardwareSampleRate,propSize,&hwSampleRate) 

그러나 특정 실행에서 나는 44.1kHz의 샘플링 속도를 되 찾는다. 이 경우 해당 샘플링 속도로 계산을 처리 할 수 ​​없어 내 앱이 작동하지 않는 것 같습니다. 샘플링 속도를 8kHz로 유지하는 최선의 선택은 무엇입니까? 종료하고 응용 프로그램을 다시 열면 나쁜 UX가됩니다.

+1

오디오는 iOS의 공유 리소스입니다. 어떤 응용 프로그램도 오디오 하드웨어를 공유하는 다른 OS 서비스 또는 응용 프로그램과 호환되지 않을 수 있으므로 오디오 구성을 강제로 실행할 수 없습니다. 대신 샘플 속도 변환기, 오디오 장치 또는 오디오 처리 부분을 사용해보십시오. – hotpaw2

답변

3

hotpaw2가 언급했듯이 오디오는 iOS의 공유 리소스입니다. 하드웨어에 독점적으로 액세스 할 수는 없습니다. AudioSessionSetProperty/kAudioSessionProperty_PreferredHardwareSampleRate를 호출하면 (자) 가 하드웨어 샘플 레이트 인으로 설정됩니다. 하드웨어가 다른 속도로 실행되는 결과를 초래할 수도 있습니다. 즉, 앱이 8kHz로 실행되지 않을 수 있음을 의미하지는 않습니다.

RemoteIO 형식을 올바르게 구성하면 RemoteIO가 출력 샘플 속도 변환을 수행합니다. 하드웨어는 44.1kHz에서 실행되지만 응용 프로그램은 8kHz에서 출력됩니다.

당신은이 문서의 "샘플 속도"를 검색하여이를 달성하기 위해 다양한 방법에 대해 읽을 수 있습니다

: (해당 문서에 설명 된대로)

http://developer.apple.com/library/ios/documentation/MusicAudio/Conceptual/AudioUnitHostingGuide_iOS/ConstructingAudioUnitApps/ConstructingAudioUnitApps.html

하나의 옵션으로 믹서를 설정하는 것입니다 올바른 출력 샘플링 속도를 얻은 다음 렌더링 콜백을 믹서의 입력에 연결하십시오.

+0

믹서 유닛, 오디오 콜백 및 RemoteIO를 함께 사용하는 방법에 대한 자습서가 있습니까? 지난 2 일 동안 노력했다. Apple의 MixerHost는 런타임시에도 충돌합니다. 거기에서 코드를 복사하여 물건이 연결되어있는 것처럼 보이지만 콘솔을 로깅 할 때 콜백이 44100의 비율로 효과적으로 호출되고 있음이 분명합니다. 구성원 노드 : \t 노드 1 : auou 'rioc'APPL '예 0x1f53e150 O \t 노드 2'aumx 'mcmx'APPL '인스턴스 0x20031320 O 입력 콜백 : \t {0xa430d, 0x1f53549c} => 노드 1 개 버스 0 [2 CH , 16000 Hz] – e7mac

관련 문제