2016-04-03 80 views
0

我使用SFML和Xamarin Studio在Mac上編寫了一個用於錄製音頻輸入麥克風的應用程序。看看代碼:我的SFML應用程序崩潰了嗎?

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(); 
    } 
} 

當我點擊OnButton3Clicked ...我的應用程序崩潰沒有給出任何理由,爲什麼?

回答

0

你永遠不實際實例刻錄機:

static SoundBufferRecorder recorder; 

這意味着記錄是null,你會得到一個「對象未設置爲實例」誤差。

static SoundBufferRecorder recorder = new SoundBufferRecorder();