2012-10-19 64 views
0

我製作了一個Windows窗體應用程序,用於偵聽麥克風並檢測聲音用戶。爲什麼我的活動不會在服務中啓動?

現在我想做同樣的事情,但在一個服務。

我用n音訊與此事件:

myWave = new WaveIn(); 
... 
myWave.DataAvailable += new EventHandler<WaveInEventArgs>(myWave_DataAvailable); 

在windows窗體工作正常,但該服務不觸發事件。

有誰知道爲什麼?

另一個問題是

請問我的服務聽到麥克風,即使在沒有登錄的時候?

謝謝!

編輯新的信息和使用WaveInEvent類:

我聲明變量的類

public partial class SoundDetector : ServiceBase { 
    ... 
    private WaveInEvent myWave; 

在構造

public SoundDetector() 
{ 
    myWave.DataAvailable += myWave_DataAvailable; 

設置事件,並開始recordig在OnStart

protected override void OnStart(string[] args) 
{ 
    myWave.StartRecording(); 

但該事件還是停止射擊...

+3

沒見過n音訊之前,但快速查看源似乎表明它使用窗口消息 - 這不會對因爲服務不會有消息循環運行,所以工作良好。 –

+0

你說的是Windows服務嗎? – giacomelli

+0

是的,Windows服務。 我試圖尋找另一種方式來利用與 wavein處理事件(WaveIn MYWAVE =新WaveIn(WaveCallbackInfo.FunctionCallback())){ } 現在事件觸發三次,但然後停止... –

回答

0

使用WaveInEvent類,而不是

+0

我已經在使用WaveInEvent類,但DataAvailable事件在開始幾秒鐘後停止觸發... –

+0

RecordingStopped事件是否觸發,如果有,它是否有異常屬性? –

+0

正如所料,這是我的錯。 有效的RecordingStopped事件觸發了一個例外。 我做了一個函數,在txt文件中寫入日誌,並且在訪問文件時發生衝突... 感謝您的幫助,因爲我看不到它。 –

相關問題