objective c - Get Audio (mp3) From MOV File iOS -


how can extract audio (preferably .mp3) .mov file got user's camera roll?

i extract mov file here:

- (void) imagepickercontroller: (uiimagepickercontroller *) picker  didfinishpickingmediawithinfo: (nsdictionary *) info {      nsstring *mediatype = [info objectforkey: uiimagepickercontrollermediatype];     [self dismissviewcontrolleranimated:no completion:nil];      if (cfstringcompare ((__bridge_retained cfstringref)mediatype, kuttypemovie, 0)         == kcfcompareequalto) {          nsstring *filename = [[info objectforkey:                                 uiimagepickercontrollermediaurl] path];         nsdata *data = [[nsdata alloc] initwithcontentsoffile:moviepath];          [self dismissviewcontrolleranimated:yes completion:nil];       } } 

please let me know if more code need provided think sufficient amount of information.

i have tried few things gotten absolutely nowhere. appreciated. thank you

i extract m4a file using following piece of code , write file application documents directory

    -(void)imagepickercontroller:(uiimagepickercontroller *)picker didfinishpickingmediawithinfo:(nsdictionary *)info {  avmutablecomposition *newaudioasset = [avmutablecomposition composition]; avmutablecompositiontrack *dstcompositiontrack = [newaudioasset addmutabletrackwithmediatype:avmediatypeaudio preferredtrackid:kcmpersistenttrackid_invalid]; // 1 - media type nsstring *mediatype = [info objectforkey: uiimagepickercontrollermediatype];  // 2 - dismiss image picker [self dismissviewcontrolleranimated:yes completion:nil];  // 3 - handle video selection if (cfstringcompare ((__bridge_retained cfstringref) mediatype, kuttypemovie, 0) == kcfcompareequalto) {     videoasset = [avasset assetwithurl:[info objectforkey:uiimagepickercontrollermediaurl]];     //  nslog(@"track = %@",[videoasset trackswithmediatype:avmediatypeaudio]);      nsarray *trackarray = [videoasset trackswithmediatype:avmediatypeaudio];     if(!trackarray.count){         nslog(@"track returns empty array mediatype avmediatypeaudio");         return;     }      avassettrack *srcassettrack = [trackarray  objectatindex:0];      //extract time range     cmtimerange timerange = srcassettrack.timerange;     nserror *err = nil;     if(no == [dstcompositiontrack inserttimerange:timerange oftrack:srcassettrack attime:kcmtimezero error:&err]){         nslog(@"failed insert audio video mutable avcomposition track");         return;     }     //export avcompostion track destination path     nsstring *documentsdirectory = [nssearchpathfordirectoriesindomains (nsdocumentdirectory, nsuserdomainmask, yes) objectatindex: 0];     nsstring *dstpath = [documentsdirectory stringbyappendingstring:@"/sample_audio.m4a"];     nsurl *dsturl = [nsurl fileurlwithpath:dstpath];       //remove if file exists     [[nsfilemanager defaultmanager] removeitematurl:dsturl error:nil];      avassetexportsession *exportsession = [[avassetexportsession alloc]initwithasset:newaudioasset presetname:avassetexportpresetpassthrough];     nslog(@"support file types= %@", [exportsession supportedfiletypes]);     exportsession.outputfiletype = avfiletypeapplem4a;     exportsession.outputurl = dsturl;      [exportsession exportasynchronouslywithcompletionhandler:^{         avassetexportsessionstatus status = exportsession.status;          if(avassetexportsessionstatuscompleted != status){             nslog(@"export status not yet completed. error: %@", exportsession.error.description);         }     }];       //        uialertview *alert = [[uialertview alloc] initwithtitle:@"asset loaded" message:@"video asset loaded"     //                                                       delegate:nil cancelbuttontitle:@"ok" otherbuttontitles:nil];     //        [alert show]; } 

}


Comments

Popular posts from this blog

visual studio - vb.net filter binding source by time -

php - SPIP: From Tag directly to an article -

jquery - isAjaxRequest always return false -