AudioUnit을 통해 왼쪽 및 오른쪽 오디오를 처리 할 수 있도록 2 개의 버퍼가있는 AVAssetReader에서 AudioBufferList를 다시 가져올 수 있기를 바랍니다. 아래 출력 설정을 사용해 보았지만 kAudioChannelLayoutTag_Stereo로 설정 한 스테레오 레이아웃을 지정하면 읽을 수 없습니다.AVAssetReader를 사용하여 스테레오 채널 레이아웃을 다시 가져올 수 있습니까?
AVAssetReader가 비 인터리브 결과를 반환 할 수 있습니까?
그렇지 않은 경우 어떻게 인터리브되지 않은 AudioBufferList로 변환하겠습니까? Audio Converter Services를 사용하려고했지만 AudioStreamBasicDescription의 입력 또는 출력 값을 받아 들일 수 없습니다. (ASBD) 내가 AVAssetReader에서 원하는 형식으로 데이터를 가져올 수 없다면 필자는 필요한 형식으로 변환 할 수 있기를 원합니다.
팁을 주시면 감사하겠습니다.
- (NSDictionary *) getOutputSettings {
AudioChannelLayout channelLayout;
memset(&channelLayout, 0, sizeof(AudioChannelLayout));
channelLayout.mChannelLayoutTag = kAudioChannelLayoutTag_Stereo;
NSDictionary *outputSettings = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt:kAudioFormatLinearPCM], AVFormatIDKey,
[NSNumber numberWithFloat:44100.0], AVSampleRateKey,
[NSNumber numberWithInt:2], AVNumberOfChannelsKey,
[NSData dataWithBytes:&channelLayout length:sizeof(AudioChannelLayout)], AVChannelLayoutKey,
[NSNumber numberWithInt:16], AVLinearPCMBitDepthKey,
[NSNumber numberWithBool:NO], AVLinearPCMIsNonInterleaved,
[NSNumber numberWithBool:NO],AVLinearPCMIsFloatKey,
[NSNumber numberWithBool:NO], AVLinearPCMIsBigEndianKey,
nil];
return outputSettings;
}
완료. 나는 옛날 사람들이 거기서 놀고있는 것을 발견했다. – Brennan