[Mono-bugs] [Bug 562094] New: AVAudioRecorder doesn't dispose properly

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Thu Dec 10 03:59:29 EST 2009


http://bugzilla.novell.com/show_bug.cgi?id=562094

http://bugzilla.novell.com/show_bug.cgi?id=562094#c0


           Summary: AVAudioRecorder doesn't dispose properly
    Classification: Mono
           Product: MonoTouch
           Version: SVN
          Platform: Macintosh
        OS/Version: Mac OS X 10.6
            Status: NEW
          Severity: Critical
          Priority: P5 - None
         Component: Runtime
        AssignedTo: gnorton at novell.com
        ReportedBy: wado03 at hotmail.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---


User-Agent:       Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US;
rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5

After creating an instance of AVAudioRecorder, and moving to a new
UIViewController, then navigating around, the application throws an exception. 
My assumption is that the instance isn't disposing correctly when GC kicks in.


Reproducible: Always

Steps to Reproduce:
1. Create New UIViewController with instance of AVAudioRecorder
2. Start Recording
3. Close/Back on UIViewController
4. Navigate around application, click buttons, open new Views, etc
5. application will crash


Expected Results:  
  at (wrapper managed-to-native)
MonoTouch.ObjCRuntime.Messaging.void_objc_msgSend_intptr_intptr_bool
(intptr,intptr,intptr,intptr,bool) <0x00004>
  at (wrapper managed-to-native)
MonoTouch.ObjCRuntime.Messaging.void_objc_msgSend_intptr_intptr_bool
(intptr,intptr,intptr,intptr,bool) <0x00004>
  at MonoTouch.Foundation.NSObject.Dispose (bool) [0x0003b] in
/Users/plasma/Source/iphone/monotouch/Foundation/NSObject.cs:85
  at MonoTouch.Foundation.NSObject.Finalize () [0x00000] in
/Users/plasma/Source/iphone/monotouch/Foundation/NSObject.cs:57
  at (wrapper runtime-invoke) object.runtime_invoke_virtual_void__this__
(object,intptr,intptr,intptr) <IL 0x0001b, 0x00091>

public void StartRecording ()
        {
            NSObject[] values = new NSObject[]
            {    
                NSNumber.FromFloat(44100.0f),
                NSNumber.FromInt32((int)AudioFileType.WAVE),
                NSNumber.FromInt32(1),
                NSNumber.FromInt32((int)AVAudioQuality.Max)
            };

            NSObject[] keys = new NSObject[]
            {
                AVAudioSettings.AVSampleRateKey,
                AVAudioSettings.AVFormatKey,
                AVAudioSettings.AVNumberOfChannelsKey,
                AVAudioSettings.AVEncoderAudioQualityKey
            };

            NSDictionary settings = NSDictionary.FromObjectsAndKeys (values,
keys);

            NSUrl url = NSUrl.FromFilename (TempRecording);

            NSError error = new NSError ();

            AVAudioRecorder recorder = new AVAudioRecorder (url, settings,
error);
            recorder.FinishedRecording += delegate {
                recorder.Dispose();
                Debug.WriteLine("Done Recording");
            };
            recorder.MeteringEnabled = true;
            recorder.PrepareToRecord();
            recorder.RecordFor(10.0);

            //NSTimer timer = NSTimer.CreateRepeatingScheduledTimer
(TimeSpan.FromSeconds (1.0), () => UpdateMeter ());
        }

-- 
Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the mono-bugs mailing list