#iphone #audio-recording #audio-capture
#iPhone #аудиозапись #захват звука
Вопрос:
Следующий код работает нормально (некоторые проверки и код устранены) на глубине 44100 2, которая, по-видимому, используется по умолчанию. Поскольку этот интерфейс можно использовать, но плохо документирован, кто-нибудь знает, как изменить качество по умолчанию?
audioCaptureDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeAudio];
captureSession = [[AVCaptureSession alloc] init];
audioInput = [AVCaptureDeviceInput deviceInputWithDevice:audioCaptureDevice error:amp;error];
[captureSession addInput:audioInput];
audioOutput = [[AVCaptureAudioDataOutput alloc] init];
[audioOutput setSampleBufferDelegate:self queue:dispatch_get_main_queue()];
[captureSession addOutput:audioOutput];
Ответ №1:
Это должно сработать.
Подробнее здесь
union
{
OSStatus propertyResu<
char a[4];
} u;
Float64 F64sampleRate = 8192.0;
Float64 F64realSampleRate = 0;
UInt32 F64datasize = 8;
u.propertyResult = AudioSessionSetProperty ( kAudioSessionProperty_PreferredHardwareSampleRate ,sizeof(F64sampleRate) , amp;F64sampleRate );
NSLog(@"Set Error Set Sample Rate %ld %lx %c%c%c%c",u.propertyResult,u.propertyResult,u.a[3],u.a[2],u.a[1],u.a[0]);
u.propertyResult = AudioSessionGetProperty ( kAudioSessionProperty_CurrentHardwareSampleRate , amp;F64datasize, amp;F64realSampleRate );
NSLog(@"Get Error Current Sample Rate %ld %lx %c%c%c%c",u.propertyResult,u.propertyResult,u.a[3],u.a[2],u.a[1],u.a[0]);
NSLog(@"Sample Rate is %f",F64realSampleRate);
Комментарии:
1. Использовал тот же метод, но все равно получил скорость по умолчанию. Есть другие предложения?