2012-05-11 21 views
6

में ऑडियो रिकॉर्डिंग मैं एक आईफोन ऐप विकसित कर रहा हूं जो ऑडियो को .wav प्रारूप में रिकॉर्ड करता है।आईफोन ऐप: एमपी 3

यहाँ कोड

NSMutableDictionary* recordSetting = [[NSMutableDictionary alloc]init];   
[recordSetting setValue :[NSNumber numberWithInt:kAudioFormatLinearPCM] forKey:AVFormatIDKey]; 
[recordSetting setValue:[NSNumber numberWithFloat:11025.0] forKey:AVSampleRateKey];   
[recordSetting setValue:[NSNumber numberWithInt: 1] forKey:AVNumberOfChannelsKey]; 
[recordSetting setValue:[NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey]; 




NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
NSUserDomainMask, YES); 

    NSString *documentsDirectory = [path objectAtIndex:0]; 

    NSString *myDBnew = [documentsDirectory stringByAppendingPathComponent:@"test.wav"]; 

recordedTmpFile = [NSURL fileURLWithPath:myDBnew]; 

NSLog(@"Using File called: %@",recordedTmpFile); 

     recorder = [[ AVAudioRecorder alloc] initWithURL:recordedTmpFile settings:recordSetting error:&error]; 
     [recorder setDelegate:self]; 
     [recorder prepareToRecord]; 
     [recorder record]; 

कोड से ऊपर .wav प्रारूप में ऑडियो रिकॉर्डिंग कर रहा है। अगर मैं KAudioFormatLinearPCM (.wav) के बजाय कुंजी kAudioFormatMPEGLayer3 (एमपी 3) का उपयोग कर एमपी 3 में ऑडियो रिकॉर्ड करना चाहता हूं तो मुझे अन्य परिवर्तनों की आवश्यकता है? नमूना दर, चैनल और सभी

या किसी ऑडियो प्रारूप जो आकार में दोनों iPhone और Android के साथ संगत, छोटा है और iPhone App

से सीधे दर्ज किया जा सकता

कृपया मदद और सुझाएँ सुझाएँ तरह शब्दकोश recordSetting में बदल जाता है।

धन्यवाद।

उत्तर

23
:

Audio Recording Reference

enter image description here

यहाँ यह ऑडियो प्रारूप परिवर्तित करने के लिए बुनियादी जानने के लिए एक कड़ी है

आप एमपी 3 में रिकॉर्ड नहीं कर सकते हैं, यह एन्कोड की बात आती है जब यह एक मालिकाना प्रारूप है आईएनजी। ये सेटिंग्स मैं उपयोग कर रहे हैं यह रिकॉर्डिंग समय के 2 मिनट के लिए ~ 150KB करने के लिए बाहर आता है: यदि आप किसी सर्वर आप FFMPEG उपयोग कर सकते हैं करने के लिए इस ऑडियो भेज रहे हैं जो

NSString *tempDir = NSTemporaryDirectory(); 
NSString *soundFilePath = [tempDir stringByAppendingPathComponent:@"sound.m4a"]; 

NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath]; 
NSDictionary *recordSettings = [NSDictionary dictionaryWithObjectsAndKeys: 
            [NSNumber numberWithInt:kAudioFormatMPEG4AAC], AVFormatIDKey, 
            [NSNumber numberWithInt:AVAudioQualityMin], AVEncoderAudioQualityKey, 
            [NSNumber numberWithInt:16], AVEncoderBitRateKey, 
            [NSNumber numberWithInt: 1], AVNumberOfChannelsKey, 
            [NSNumber numberWithFloat:8000.0], AVSampleRateKey, 
            [NSNumber numberWithInt:8], AVLinearPCMBitDepthKey, 
            nil]; 

भी कर रूपांतरण, एक प्रोसेसर गहन ऑपरेशन है mp3lame लाइब्रेरी के साथ सर्वर पर ऑडियो रूपांतरण करने के लिए।

संपादित करें: यह एंड्रॉइड रिकॉर्डिंग के लिए कोड है, यह एएमआर एन्कोडिंग पर सेट है क्योंकि एएसी केवल हनीकॉम के रूप में समर्थित है।

mediaRecorder = new MediaRecorder(); 
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
mediaRecorder.setAudioChannels(1); 
mediaRecorder.setOutputFile("sample.m4a"); 
+0

सहायता के लिए धन्यवाद लेकिन मैं कैसे प्राप्त कर सकता हूं। एम 4 ए के रूप में इस से एएसी फ़ाइल एंड्रॉइड पर समर्थित नहीं है। कृपया मुझे बताएं। – ios

+1

मेरे एंड्रॉइड डेवलपिंग पार्टनर ने मुझे यह http://developer.android.com/guide/appendix/media-formats.html दिया है, आप देख सकते हैं कि आप एंड्रॉइड पर एएसी में एन्कोड कर सकते हैं और एक .m4a फ़ाइल सहेज सकते हैं ताकि आपके पास समस्या के बिना आईओएस और एंड्रॉइड दोनों के लिए एक ही .m4a प्रारूप। – 8vius

+0

आपकी समस्या को हल करने के लिए प्रबंधित, दोस्त? – 8vius

1

आप .mp3 फ़ाइल में ऑडियो रिकॉर्ड नहीं कर सकते। kAudioFormatMPEGLayer3 केवल playback the .mp3 format audio के लिए है। no codec available for .mp3 recording है। आपको aac या wav प्रारूप में रिकॉर्ड की आवश्यकता है और इसे .mp3 प्रारूप में परिवर्तित करें।

बेहतर नीचे दिए गए लिंक और छवियों की जाँच:

Audio Converter Reference

संबंधित मुद्दे