in cocoa application try record voice internal mic. using avaudiorecorder class purpose. in code below setup avaudiorecorder instance.
- (void)setupaudiorecorder { nsmutabledictionary *recordsettings = [nsmutabledictionary dictionary]; recordsettings[avformatidkey] = @(kaudioformatlinearpcm); recordsettings[avsampleratekey] = @(16000.0); recordsettings[avnumberofchannelskey] = @(1); recordsettings[avlinearpcmbitdepthkey] = @(16); recordsettings[avlinearpcmisbigendiankey] = @(no); recordsettings[avlinearpcmisfloatkey] = @(no); recordsettings[avencoderbitratestrategykey] = avaudiobitratestrategy_variable; recordsettings[avencoderaudioqualityforvbrkey] = @(avaudioqualitymedium); recordsettings[avsamplerateconverteralgorithmkey] = avsamplerateconverteralgorithm_mastering; recordsettings[avsamplerateconverteraudioqualitykey] = @(avaudioqualitymedium); nsstring *file = [[nssearchpathfordirectoriesindomains(nscachesdirectory, nsuserdomainmask, yes) objectatindex:0] stringbyappendingpathcomponent:@".recorder_voice.caf"]; nsfilemanager *fm = [nsfilemanager defaultmanager]; if ([fm fileexistsatpath:file]) [fm removeitematpath:file error:nil]; nsurl *url = [nsurl fileurlwithpath:file]; nserror *err = nil; self.recorder.delegate = nil; self.recorder = [[avaudiorecorder alloc] initwithurl:url settings:recordsettings error:&err]; if(!self.recorder){ // show error } [self.recorder setdelegate:self]; [self.recorder preparetorecord]; self.recorder.meteringenabled = yes; } on yosemite works fine on mavericks i've got silence. system logs show error when execute [self.recorder preparetorecord]; :
aqmeio.cpp:377 _findiounit: error -66680.
what mean , how can fix it?
finally i've found answer. reason in sandbox project setting. didn't check microphone box in target -> capabilities -> app sanbox. yosemite ignore issue maverics not.
Comments
Post a Comment