2016-04-03 5 views
0

Ich bin in C# mit SFML und Xamarin Studio auf meinem Mac eine Anwendung zum Aufzeichnen von Audio-Eingang Mikrofon. Schauen Sie sich den Code:Mein SFML-Programmabsturz?

using System; 
using Gtk; 
using SFML; 
using SFML.Audio; 
using SFML.System; 

public partial class MainWindow: Gtk.Window 
{ 
    public MainWindow() : base (Gtk.WindowType.Toplevel) 
    { 
     Build(); 
    } 

    protected void OnDeleteEvent (object sender, DeleteEventArgs a) 
    { 
     Application.Quit(); 
     a.RetVal = true; 
    } 

    static SoundBufferRecorder recorder; 


    protected void OnButton2Clicked (object sender, EventArgs e) 
    { 
     recorder.Start (44110); 
    } 

    protected void OnButton3Clicked (object sender, EventArgs e) 
    { 
     recorder.Stop(); 
     SoundBuffer sf = recorder.SoundBuffer; 
     sf.SaveToFile ("audio.mp3"); 
    } 

    protected void OnButton1Clicked (object sender, EventArgs e) 
    { 
     Sound sound = new Sound (recorder.SoundBuffer); 
     sound.Play(); 
    } 
} 

Wenn ich auf OnButton3Clicked klicken ... Meine Anwendung abstürzt, ohne einen Grund geben, warum?

Antwort

0

Sie instanziiert nie wirklich Ihr Recorder:

static SoundBufferRecorder recorder; 

Das bedeutet Recorder ist null und Sie werden ein „Objekt nicht auf eine Instanz“ -Fehler zu erhalten.

static SoundBufferRecorder recorder = new SoundBufferRecorder();