objective c - AVAudioEngine (iOS 8 Obj-C): How to construct the graph for Recording & Playback? -



objective c - AVAudioEngine (iOS 8 Obj-C): How to construct the graph for Recording & Playback? -

i need create render graph basic recording file , playback file, using avaudiofile & avaudioinputnode.

below main setup methods started, graph connected player.

how build graph [input], [player] [mixers] connected accomplish rec/play? #pragma mark - setup -(void)setupaudioengine{ //create _audioengine = [[avaudioengine alloc]init]; _player = [[avaudioplayernode alloc] init]; _inputmixer = [[avaudiomixernode alloc]init]; _playermixer = [[avaudiomixernode alloc]init]; //attach player engine [_audioengine attachnode:_player]; [_audioengine attachnode:_inputmixer]; [_audioengine attachnode:_playermixer]; _input = [_audioengine inputnode]; _mainmixer = [_audioengine mainmixernode]; //setup sound file nserror *error = nil; //connect render grapth [_audioengine connect:_input to:_mainmixer format:[_input inputformatforbus:0]]; [_audioengine connect:_player to:_mainmixer format:_audiofile.processingformat]; //start engine [_audioengine startandreturnerror:&error]; if(error) { nslog(@"error: %@", [error localizeddescription]); } } - (ibaction)recordaudio:(uibutton *)sender { nserror *error = nil; //setup writing file nsarray *pathcomponents = [nsarray arraywithobjects: [nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes) lastobject], @"myaudiomemo.m4a", nil]; nsurl *inputfileurl = [nsurl fileurlwithpathcomponents:pathcomponents]; nsdictionary *recordsettings = @{ avformatidkey : @(kaudioformatmpeg4aac), avsampleratekey : @44100.0f, avnumberofchannelskey : @1, avencoderbitdepthhintkey : @16, avencoderaudioqualitykey : @(avaudioqualitymedium) }; _audiofile = [[avaudiofile alloc] initforwriting:inputfileurl settings:recordsettings error:&error]; [_mainmixer installtaponbus:0 buffersize:4096 format:[_mainmixer outputformatforbus:0] block:^(avaudiopcmbuffer *buffer, avaudiotime *when) { }]; } - (ibaction)stoprec:(id)sender { [_audioengine disconnectnodeoutput:_input]; } - (ibaction)playaudio:(uibutton *)sender { //schedule play [_player schedulefile:_audiofile attime:nil completionhandler:nil]; [_player play]; }

objective-c ios8 core-audio

Comments

Popular posts from this blog

xslt - DocBook 5 to PDF transform failing with error: "fo:flow" is missing child elements. Required content model: marker* -

mediawiki - How do I insert tables inside infoboxes on Wikia pages? -

Local Service User Logged into Windows -