Ios AVCaptureSession中6s机型的真实音频采样率是多少?

Ios AVCaptureSession中6s机型的真实音频采样率是多少?,ios,audio,Ios,Audio,我将音频采样率设置为44.1k AVAudioSession *audioSession = [AVAudioSession sharedInstance]; [audioSession setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionMixWithOthers

我将音频采样率设置为44.1k

AVAudioSession *audioSession = [AVAudioSession sharedInstance];

[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord
                                 withOptions:AVAudioSessionCategoryOptionMixWithOthers
                                       error:nil];

[audioSession setPreferredSampleRate:44100.0f error:nil];
[audioSession setPreferredOutputNumberOfChannels:1 error:nil];
//[audioSession setPreferredInputNumberOfChannels:2 error:nil];
[audioSession setPreferredIOBufferDuration:(1024.0f / 44100.0f) error:nil];
[audioSession setActive:YES error:nil];
NSLog(@"Audio session sampleRate = %f, outputNumberOfChannels = %d, duration = %f.", audioSession.sampleRate, audioSession.outputNumberOfChannels, audioSession.IOBufferDuration);
6s/6s plus型号打印48000,其他型号打印44100。
在AVCaptureAudioDataOutputSampleBufferDelegate中:

AudioStreamBasicDescription inputFormat = *(CMAudioFormatDescriptionGetStreamBasicDescription(CMSampleBufferGetFormatDescription(sampleBuffer)));  
注意:但是采样器总是44100引用inputformat,样本大小是188018822048


实际采样率是多少?44100或48000?

6S系列是48000,但inputFormat.mSampleRate打印44100。假设samplebuffer的大小为1880,1880/2=940个样本,如果44100,则持续时间=940*1000/44100=21.32ms,如果48000,则持续时间=940*1000/48000=19.58ms。1880 size samplebuffer的实际持续时间为21.32ms,我通过此samplebuffer的pts减去前一个samplebuffer的pts来计算。