2014-09-23 1 views
7

AudioUnitSampleType을 사용하여 렌더링 콜백에서 샘플을 throw하는 앱이 있습니다. iOS 8에서는 더 이상 사용되지 않으며 사운드가 작동하지 않습니다. 이전 iOS 버전은 완벽하게 작동했습니다. AudioUnitSampleType을 대체하는 방법에 대한 문서를 찾을 수 없습니다. 내가 가진AudioUnitSampleType이 iOS8에서 사용되지 않으며 내 렌더링 콜백이 작동하지 않습니다.

유일한 정보는 누군가가 그것을 해결하는 방법에 대한 몇 가지 빛을 넣을 수

하십시오, 도움말 "사용되지 않으며 표준 형식의 개념"Xcode의 경고입니다 ...?

답변

11

같은 문제가 있습니다. AudioUnitSampleTypeSInt32으로 바꿀 수 있습니다. 나는 AudioStreamBasicDescription도 선언 했으므로 선언문을 streamFormat.mFormatFlags = kAudioFormatFlagsAudioUnitCanonical;에서 streamFormat.mFormatFlags = kAudioFormatFlagIsFloat | kAudioFormatFlagsNativeEndian | kAudioFormatFlagIsPacked | kAudioFormatFlagIsNonInterleaved;

으로 바꿔 주시면 감사하겠습니다.

편집 :

또한 AudioUnitSampleType

편집을 정의하는 typealias을 사용할 수 있습니다 : 당신은 또한 TheAmazingAudioEngine

+0

브라보로 전환 고려할 수 있습니다. 고마워요 – glenstorey

+1

사실이게 작동하지 않거나 적어도 첫 번째 단락의 일부입니다. kAudioFormatIsFloat를 추가하는 것은 올바르지 않으며 오디오가 아닌 노이즈를줍니다. –

+1

플로팅 32이기 때문에 쉽지는 않을 것 같습니다. CoreAudioTypes.h에서 "이러한 유형은 더 이상 사용되지 않으며, 신호 처리를 수행하는 코드는 구체적 유형 (예 : float, Float32, SInt16, SInt32)을 사용해야합니다. 형식에 관계없이이 유형의 크기를 사용하는 코드는 계산해야합니다 AudioStreamBasicDescription의 mBytesPerChannel, mChannelsPerFrame, 및 (mFlags & kLinearPCMFormatFlagIsNonInterleaved) 샘플의 사이즈. 인터리브 된 형식의 경우, 샘플의 사이즈는 mBytesPerFrame/mChannelsPerFrame입니다. 인터리브되어 있지 않은 형식의 경우는 mBytesPerFrame입니다. – auco

관련 문제