2012-09-10 33 views
0

我正在開發一個Silverlight項目來記錄網頁上的音頻。我點擊暫停按鈕Silverlight 4捕獲源不停止

後的代碼總是會拋出異常:

捕捉源不停止

如果我把一個破發點上這行代碼,並等待在那裏的3- 5秒後再運行代碼,不會拋出異常。

if (audioSink.CaptureSource.State == CaptureState.Started) (break point is on this line) 

下面是代碼

private void Pause(object sender, RoutedEventArgs e) 
    { 
     //System.Threading.Thread.Sleep(TimeSpan.FromSeconds(5)); 
     if (audioSink.CaptureSource.State == CaptureState.Started) 
     { 
      audioSink.CaptureSource.Stop(); 

      this.btnPause.IsEnabled = false; 
      this.btnRecord.IsEnabled = true; 
      this.btnSave.IsEnabled = true; 
     } 
    } 

    audioSink.CaptureSource.Stop(); (This is the line of code which throws the exception) 
+0

這可能是一個安全問題?你讀過文檔嗎? –

+0

@lukas,正如我在文章中提到的,如果我在斷點處等待3到5秒,然後執行其餘代碼,則可以完成此操作。 – Franva

回答

0

不知道它可能會幫助:

在使用視頻源我傾向於使用CaptureDeviceConfiguration.AllowDeviceAccess屬性,以檢查是否我可以操縱捕獲物。

您可以通過撥打CaptureDeviceConfiguration.RequestDeviceAccess獲得設備的訪問權限。在調用捕獲的Start方法之前,您應該調用此方法。如果您在Start方法中執行此操作,則應該已經擁有訪問權限並調用Stop方法而不會出現問題。

+0

嗨hoonzis,謝謝你的回覆。我確實有該代碼來確定該網站是否有權訪問網絡攝像頭。當我試圖停止錄音而不是開始時,就會出現問題。 – Franva