ios - Record the Background Playing song in iOS7 -
ios - Record the Background Playing song in iOS7 -
i trying record background playing song using avaudiorecorder. code below:
//initialize sound session avaudiosession *audiosession = [avaudiosession sharedinstance]; [audiosession setcategory:avaudiosessioncategoryrecord error:nil]; [[avaudiosession sharedinstance] setcategory:avaudiosessioncategoryplayandrecord error:nil]; //override record mix other app audio, background sound not silenced on record uint32 allowmixing = true; osstatus propertyseterror = 0; propertyseterror = audiosessionsetproperty(kaudiosessionproperty_overridecategorymixwithothers, sizeof(allowmixing), &allowmixing); nslog(@"mixing: %lx", propertyseterror); // should 0 or there issue somewhere uint32 audiorouteoverride = kaudiosessionoverrideaudioroute_speaker; audiosessionsetproperty (kaudiosessionproperty_overrideaudioroute,sizeof (audiorouteoverride),&audiorouteoverride); [[avaudiosession sharedinstance] setactive:yes error:nil]; nsmutabledictionary *recordsetting = [[nsmutabledictionary alloc] initwithcapacity:0]; if (recordencoding == enc_pcm) { [recordsetting setvalue:[nsnumber numberwithint:kaudioformatlinearpcm] forkey:avformatidkey]; [recordsetting setvalue:[nsnumber numberwithfloat:44100.0] forkey:avsampleratekey]; [recordsetting setvalue:[nsnumber numberwithint:2] forkey:avnumberofchannelskey]; [recordsetting setvalue:[nsnumber numberwithint:16] forkey:avlinearpcmbitdepthkey]; [recordsetting setvalue:[nsnumber numberwithbool:no] forkey:avlinearpcmisbigendiankey]; [recordsetting setvalue:[nsnumber numberwithbool:no] forkey:avlinearpcmisfloatkey]; } else { nsnumber *formatobject; switch (recordencoding) { case enc_aac: formatobject = [nsnumber numberwithint:kaudioformatmpeg4aac]; break; case enc_alac: formatobject = [nsnumber numberwithint:kaudioformatapplelossless]; break; case enc_ima4: formatobject = [nsnumber numberwithint:kaudioformatappleima4]; break; case enc_ilbc: formatobject = [nsnumber numberwithint:kaudioformatilbc]; break; case enc_ulaw: formatobject = [nsnumber numberwithint:kaudioformatulaw]; break; default: formatobject = [nsnumber numberwithint:kaudioformatappleima4]; break; } [recordsetting setvalue:formatobject forkey:avformatidkey]; [recordsetting setvalue:[nsnumber numberwithfloat:44100.0] forkey:avsampleratekey]; [recordsetting setvalue:[nsnumber numberwithint:2] forkey:avnumberofchannelskey]; [recordsetting setvalue:[nsnumber numberwithint:12800] forkey:avencoderbitratekey]; [recordsetting setvalue:[nsnumber numberwithint:16] forkey:avlinearpcmbitdepthkey]; [recordsetting setvalue:[nsnumber numberwithint:avaudioqualityhigh] forkey:avencoderaudioqualitykey]; } nsarray *paths = nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes); nsstring *recdir = [paths objectatindex:0]; nsurl *url = [nsurl fileurlwithpath:[nsstring stringwithformat:@"%@/recordtest.caf", recdir]]; nserror *error = nil; audiorecorder = [[ avaudiorecorder alloc] initwithurl:url settings:recordsetting error:&error]; if (!audiorecorder) { nslog(@"audiorecorder: %@ %d %@", [error domain], [error code], [[error userinfo] description]); return; } // audiorecorder.meteringenabled = yes; // bool audiohwavailable = audiosession.inputisavailable; if (! audiohwavailable) { uialertview *cantrecordalert = [[uialertview alloc] initwithtitle: @"warning" message: @"audio input hardware not available" delegate: nil cancelbuttontitle:@"ok" otherbuttontitles:nil]; [cantrecordalert show]; [cantrecordalert release]; return; } if ([audiorecorder preparetorecord]) { [audiorecorder record]; nslog(@"recording"); } else { // int errorcode = cfswapint32hosttobig ([error code]); // nslog(@"error: %@ [%4.4s])" , [error localizeddescription], (char*)&errorcode); nslog(@"recorder: %@ %d %@", [error domain], [error code], [[error userinfo] description]); } but here session depreciated in ios7 warning occurs at:
audiosessionsetproperty (kaudiosessionproperty_overrideaudioroute,sizeof (audiorouteoverride),&audiorouteoverride);
can 1 help me remove warning without changing functionality
ios
Comments
Post a Comment