एक ऐप्लिकेशन में मैं वर्तमान में विकसित कर रहा हूँ, मैं और अधिक या कम एक ईंट की दीवार तक पहुंचते हैं। एप्लिकेशन में आप एक दृश्य दर्ज कर सकते हैं जो मानक तालिका दृश्य में सभी स्थानीय रूप से सहेजी गई ऑडियो फ़ाइलों को सूचीबद्ध करता है। यहां से आप उन्हें खेलने के लिए उन पर क्लिक कर सकते हैं, या एक नई रिकॉर्डिंग करने के लिए नीचे एक रिकॉर्ड बटन दबा सकते हैं, जो बाद में स्वचालित रूप से ऐप्स सैंडबॉक्स में सहेजा जाएगा।मालूम होता है यादृच्छिक फ़ाइल भ्रष्टाचार AVAudioRecorder (कभी कभी फ़ाइल वापस चलाया नहीं जा सकता) का उपयोग कर - आईओएस
अब यह सब वास्तव में पूरी तरह से ठीक काम करता है। मैं बैठकर रिकॉर्डिंग कर सकता हूं और उन्हें वापस चला सकता हूं। मैं बैठकर परीक्षण कर सकता हूं और बिना किसी समस्या के 45 के आसपास परीक्षण कर सकता हूं। फिर अचानक यादृच्छिक समय पर मैं एक बहुत ही अजीब समस्या को मार दूंगा। समस्या यह है कि रिकॉर्डर अचानक अचानक भ्रष्ट फाइलों को सहेजने के लिए शुरू नहीं करता है, जिसे वापस नहीं खेला जा सकता है और आकार में बिल्कुल 4096 बाइट हैं, इससे कोई फर्क नहीं पड़ता कि आप कितने समय तक रिकॉर्डर हैं।
मैं एक पूरी तरह से मानक ढंग से AVAudioRecorder उपयोग करते हैं, इस तरह यह स्थापित करने:
// Specific settings for the audio recording
NSDictionary *recordSettings = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt:AVAudioQualityMin],
AVEncoderAudioQualityKey,
[NSNumber numberWithInt:8],
AVEncoderBitRateKey,
[NSNumber numberWithInt: 2],
AVNumberOfChannelsKey,
[NSNumber numberWithFloat:22000.0],
AVSampleRateKey,
nil];
NSError *error = nil;
audioRecorder = [[AVAudioRecorder alloc]
initWithURL:contentURL
settings:recordSettings
error:&error];
audioRecorder.delegate = self;
मैं इस तरह रिकॉर्डिंग शुरू:
if (!isRecording) {
isRecording = YES;
[audioRecorder record];
// Start the timer
recordTiming = [NSDate date];
timeCheck = [NSTimer
scheduledTimerWithTimeInterval:1.0f
target:self
selector:@selector(timeCheck)
userInfo:nil
repeats:YES];
}
और फिर इस के साथ यह रोक:
if (isRecording) {
[audioRecorder stop];
// Stop the timer
[timeCheck invalidate];
}
मुझे नहीं पता कि क्या इस समस्या होने की कारण बन सकता है है। अब तक मैंने लगभग हर चीज की कोशिश की है। मैंने यह सुनिश्चित करने के लिए जांच की है कि रिकॉर्डर ऑब्जेक्ट को ठीक से पुनर्नवीनीकरण किया जाता है (इसलिए आपके पास अब प्रत्येक रिकॉर्डिंग के लिए एक नया उदाहरण है), और यह सुनिश्चित करने के लिए कि पुराने संदर्भ को अवरुद्ध करने के लिए कुछ भी नहीं है, लेकिन कुछ भी हल नहीं करता है।
ऐसा कोई है जो क्या के एक मामूली विचार दूषित फ़ाइलों के साथ समस्याओं का कारण बन सकता है है?
तो तुम, सही कह रहे हैं त्रुटि चर शून्य के बाद audioRecorder आरंभ नहीं हो जाता हमेशा होता है? –
हां, सही :) असल में मेरे पास NSLog के लिए कुछ त्वरित त्रुटि जांच है ताकि यह सुनिश्चित किया जा सके कि यह सही ढंग से प्रारंभ किया गया है और एनएसईआरआर शून्य और आगे है। – CodingBeagle
समझ गया, चलिए अपने कोड को बेहतर बनाते हैं, तो समस्या शायद स्पष्ट हो या गायब होनी चाहिए। IsRecording var का उपयोग करने के बजाय आप एक ऑडियो रिकॉर्डर संपत्ति रिकॉर्डिंग का उपयोग कर सकते हैं; मैं ऑडियो सत्र प्रारंभिकता नहीं देख सकता लेकिन आपने शायद इसे छोड़ दिया है। हालांकि मैं आपको त्रुटि प्रबंधन में सुधार करने का भी सुझाव दूंगा, नीचे दिए गए उत्तर को संदर्भ के रूप में उपयोग किया जा सकता है: http://stackoverflow.com/questions/1010343/how-do-i-record-audio-on-iphone-with -वाउडीओडोरकॉर्डर –